Apakah ada cara untuk mendapatkan path absolut dari file yang sedang dicari?
Sebagai contoh:
find .. -name "filename"
Ini memberi saya hasil seperti ../filename
tetapi saya ingin jalur lengkap.
Yang saya butuhkan adalah menemukan di direktori induk dan anak-anaknya, untuk file tertentu, yang akan saya gunakan dalam skrip lain nanti.
Terima kasih
command-line
find
JorgeeFG
sumber
sumber
Jawaban:
Coba sesuatu seperti:
sumber
$(cd ..; pwd)
. Ini berfungsi dengan baik, tetapi jika saya melakukannya sendiri di Terminal, saya tidak bisa mendapatkan dir induk ... saya mendapatkan "Bash: <dir>: Adalah direktori. Dan jika saya lakukan$(cd ..; echo "something")
saya mendapatkan" sesuatu: bukan command "(cd ..; pwd)
( ... )
berarti dijalankan dalam subkulit, output ditulis ke stdout.$( ... )
singkatan dari "substitusi perintah". Yang terakhir dapat digunakan seolah-olah itu adalah ekspansi variabel.Coba gunakan
-exec
opsifind
:Catatan:
readlink
mencetak nilai tautan simbolik atau nama file kanonik.sumber
Anda dapat menggunakan
bash
Tilde Expansion untuk mendapatkan jalur absolut dari direktori kerja saat ini, cara inifind
mencetak jalur absolut untuk hasil juga:Jika dieksekusi di
~/Desktop
, ini diperluas kedan mencetak hasil seperti:
Jika Anda ingin menggunakan pendekatan ini dengan direktori induk direktori kerja saat ini , Anda harus melakukannya
cd
sebelum meneleponfind
:sumber
Cara paling sederhana adalah
sumber
find `pwd -P` -name "filename"
Juga menggunakan PWD dapat menunjukkan kepada Anda direktori lengkap. Pwd akan menunjukkan kepada Anda semua direktori Anda seperti memperluas nama file. Semoga ini bisa membantu.
sumber
Ini bekerja untuk saya, tetapi hanya akan mengembalikan kejadian pertama.
Untuk mendapatkan path lengkap untuk semua kejadian (seperti yang disarankan oleh Sergiy Kolodyazhnyy)
sumber
Menghapus komponen direktori terakhir dengan Ekspansi parameter .
Contoh bagaimana Anda dapat menggunakan mapfile untuk menyimpan output dari find ke array yang diindeks untuk digunakan nanti.
(jika tidak ada nama array yang ditentukan, MAPFILE akan menjadi nama array default).
sumber