Ketika saya menggunakan perintah cp atau move di jendela terminal, saya saat ini dengan bash di folder tertentu seperti ini.
NES@server:~/Desktop/dir1$
Dan sekarang saya ingin menyalin file dari sini ~/anotherdir/dir2
ke folder yang dipilih saat ini di bash (dir1) saya akan menggunakan perintah
cp ~/anotherdir/dir2/file ~/Desktop/dir1
apakah ada string pintasan untuk merujuk ke direktori yang dipilih saat ini? Jadi dalam contoh ini saya tidak harus memberikan path lengkap ke direktori target, tetapi perintah tahu itu harus menggunakan direktori yang dipilih saat ini di bash? yaitu sebagai ~ singkatan dari direktori home?
..
berarti satu direktori lebih rendah. Dapat digunakan beberapa kali, yaitucd ../..
..
akan membawa Anda ke direktori induk dari direktori Anda saat ini. Poin bagus.popd
danpushd
itu berubah menjadi sebuah esai..
dan..
adalah tingkat sistem file, sehingga setiap program akan menerimanya. Di sisi lain, pintasan seperti~
dan~-
merupakan bagian dari shell.cd -
; tidak tahu itu ada.Anda dapat menggunakan $ (pwd), itu akan menyelesaikan ke output dari perintah pwd.
Contoh:
sumber
echo $PWD
../ mewakili direktori saat ini. Jadi Anda bisa menggunakan perintah
cp ~/anotherdir/dir2/file ./
This akan menyalin file "file" ke direktori kerja arus.sumber
ln -s /some/long/path/to/get/to/cake
tanpa argumen kedua , itu akan menempatkancake
tautan simbolik di arus Anda secara langsung. Sangat bagus untuk yang malas. Menghemat a.
.Untuk menggunakan direktori saat ini sebagai direktori tujuan gunakan satu titik '
.
'Jawaban panjang
Dengan menggunakan contoh Anda, Anda akan mengetik:
cp ~/anotherdir/dir2/file .
Untuk melihat titik
.
,..
dan../../
nama direktori beraksi, salin dan tempel perintah berikut ke Terminal Anda:Output dari perintah tree muncul seperti ini:
Di
.
atas output pohon mewakili direktori baru saat inia
yang merupakan kakek daria/b/c
mana kita menavigasi menggunakancd ../../
perintah. Di bawahnyaa
kita melihat sub-direktoria/b
,a/b/c
dana/b/c2
Analisis baris demi baris
Pertama-tama kami membuat 4 direktori pada satu baris dengan menggunakan
&&
untuk menggabungkan beberapa baris bersamaan.Kemudian kami mengubah ke direktori
a/b/c
, yang merupakan direktori saat ini untuk perintah salin berikut:cp
) kita atur tujuan ke direktori kita saat ini ( c ) dengan.
...
.../c2
Kemudian, seperti yang dinyatakan sebelumnya, kami mengubah direktori saat ini
a
dan menjalankantree
perintah untuk menampilkan semua direktori dan file di bawaha
.Membersihkan
Setelah selesai, kami menghapus tiga direktori dan file dengan:
sumber
The variabel lingkungan untuk direktori saat ini $ PWD
sumber
Anda dapat menggunakan titik (
.
),~+
ekspansi tilde ,pwd
perintah atau variabel $ PWD untuk mewakili direktori kerja saat ini (CWD). Semua perintah ini dapat melakukannya:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
sumber
Ya (seperti yang lain dicatat), direktori saat ini adalah ".", Itu sebabnya Anda dapat memulai program / skrip dari direktori saat ini dengan ./script (hanya skrip tidak akan berfungsi kecuali. Bukan bagian dari PATH, yang tidak direkomendasikan meskipun). Menggunakan $ PWD atau $ (pwd) sedikit berlebihan, bahkan jika orang lain menyebutkan bahwa, menggunakan karakter titik tunggal lebih pendek, pasti :) ".." adalah direktori induk, pasti "/" adalah root. Juga bagus untuk menyebutkan bahwa "cd -" akan menempatkan Anda di direktori sebelumnya di mana Anda sebelum Anda mengubah cwd (direktori kerja saat ini). Ini bisa juga berguna dalam pekerjaan sehari-hari. Perintah "cd" tunggal tanpa yang lain di baris perintah akan menempatkan Anda ke "~" (rumah Anda).
sumber
$PWD
bukan berlebihan ketika membuat symlink ke jalur absolut.