Saya menggunakan perintah-cari untuk mencari di dalam struktur direktori yang besar dan bersarang.
Dalam hasil-output kadang-kadang double-slash (//) disertakan.
Contoh (setelah "Unduhan"):
#> find ~/Downloads/ -iregex ".*some.*"
/Users/michael/Downloads//subDirectory/some_file.pdf
Saya pertama kali berpikir itu akan menandai direktori kerja saat ini. Tapi bukan itu masalahnya.
Apa arti dari tebasan ganda ini?
Biasanya saya salin hasilnya ke clipboard, ganti ke finder. Lalu "geser" + "perintah" + "g" dan tempelkan path (hingga file) ke dalam kotak. Sehingga direktori yang berisi dibuka.
Bekerja dengan baik. Tapi double-slash saya harus hapus secara manual.
Karena itu: Bagaimana saya bisa menghindarinya?
Jawaban:
find
agak harfiah. Ketika Anda memintanya untuk mencari di dalam "~ / Downloads /", ia menggunakan itu (termasuk garis miring) sebagai awalan untuk apa pun yang ditemukannya. Karena ada garis miring yang tidak perlu dan tidak relevan di ujung jalan yang Anda berikan, Anda berakhir dengan garis miring yang tidak perlu dan tidak relevan dalam output.Solusi: hapus trailing "/" dari direktori pencarian:
sumber
Berarti Anda menggunakan BSD tua yang aneh.
Anda memang dapat menghilangkan garis miring pada perintah asli Anda, tetapi karena ditambahkan secara otomatis melalui penyelesaian tab (yang Anda harus menggunakan sebanyak mungkin), & karena garis miring tersebut sebenarnya digunakan di berbagai tempat di tempat lain untuk memastikan Anda Berhubungan dengan direktori dan bukan nama file, menghilangkannya berlawanan dengan intuisi & konyol.
Sebagai gantinya, saya sarankan melakukan salah satu dari hal-hal ini:
a) Buat pembungkus untuk menemukan bahwa pipa untuk sed: | sed 's @ // @ / @'
b) Instal GNU's findutils dengan 'brew install findutils' dan kemudian gunakan 'gfind' secara langsung, alias 'find' ke 'gfind', atau tambahkan / usr / local / opt / findutils / libexec / gnubin ke path Anda (yang juga menambahkan GNU findutils '' cari ',' updatedb ', &' xargs ').
c) Beralih ke OS GNU / Linux yang tepat yang tidak akan memiliki masalah ini (& seribu orang lainnya) sejak awal. : p
sumber
set mark-directories off
ke.inputrc
dan kamu baik untuk pergi. Dari salah satu orang tua BSD itu.