Saya mencoba menjalankan find
perintah untuk semua file JavaScript, tetapi bagaimana cara mengecualikan direktori tertentu?
Ini find
kode yang kami gunakan.
for file in $(find . -name '*.js')
do
java -jar config/yuicompressor-2.4.2.jar --type js $file -o $file
done
find ... | while read -r file ...
. Juga, lebih baik menerima dan meningkatkan jawaban.for file in $(find .); do echo "$file"; done
. Nama dengan spasi dibagi, yang tidak kami inginkan.Jawaban:
Gunakan
-prune
sakelar. Misalnya, jika Anda ingin mengecualikanmisc
direktori, tambahkan saja-path ./misc -prune -o
ke perintah find Anda:Berikut ini adalah contoh dengan banyak direktori:
Di sini kita mengecualikan dir1 , dir2 dan dir3 , karena dalam
find
ekspresi itu adalah tindakan yang bertindak berdasarkan kriteria-path dir1 -o -path dir2 -o -path dir3
(jika dir1 atau dir2 atau dir3 ), ANDed withtype -d
.Tindakan selanjutnya adalah
-o print
, cukup cetak.sumber
-print
(atau tindakan lainnya) secara eksplisit setelahnya-name
. Dalam hal ini, kedua "sisi" dari-o
pencetakan berakhir, sedangkan jika Anda gunakan-print
, hanya sisi yang mencetak.Because -delete implies -depth, you cannot usefully use -prune and -delete together.
Jadi, bagaimana cara menghapus menghapus jika saya ingin mengecualikan direktori tertentu dari penghapusan?find . -not -path "./.git*"
. Menggunakan./dir*
alih-alih./dir/*
menghapus direktori serta konten dari output.Jika
-prune
tidak bekerja untuk Anda, ini akan:Peringatan: mengharuskan melintasi semua direktori yang tidak diinginkan.
sumber
-prune
tidak mengecualikan direktori itu sendiri, itu mengecualikan kontennya, yang berarti Anda akan mendapatkan baris yang tidak diinginkan dalam output dengan direktori yang dikecualikan..
menjadi*
. begitu jugafind -name "*.js" -not -path "*/omitme/*"
akan menghilangkan file dari direktori bernama "omitme" pada tingkat kedalaman apa pun.-print
secara eksplisit.Saya menemukan alasan berikut lebih mudah daripada solusi yang diusulkan lainnya:
Catatan Penting: jalur yang Anda ketikkan
-path
harus benar-benar cocok dengan apa yangfind
akan dicetak tanpa pengecualian. Jika kalimat ini membingungkan Anda hanya pastikan untuk menggunakan jalur penuh melalui keluar seluruh perintah seperti ini: . Lihat catatan [1] jika Anda ingin pemahaman yang lebih baik.find /full/path/ -not \( -path /full/path/exclude/this -prune \) ...
Di dalam
\(
dan\)
merupakan ekspresi yang akan cocok persisbuild/external
(lihat catatan penting di atas), dan akan, pada kesuksesan, menghindari melintasi apa pun di bawah ini . Ini kemudian dikelompokkan sebagai satu ekspresi dengan tanda kurung lolos, dan diawali dengan-not
yang akan membuatfind
melewatkan apa pun yang cocok dengan ekspresi itu.Orang mungkin bertanya apakah menambahkan
-not
tidak akan membuat semua file lain disembunyikan oleh-prune
muncul kembali, dan jawabannya tidak. Cara-prune
kerjanya adalah apa pun itu, setelah tercapai, file di bawah direktori tersebut secara permanen diabaikan.Ini berasal dari use case yang sebenarnya, di mana saya perlu memanggil yui-compressor pada beberapa file yang dihasilkan oleh wintersmith, tetapi tinggalkan file lain yang perlu dikirim apa adanya.
Catatan [1] : Jika Anda ingin mengecualikan
/tmp/foo/bar
dan menjalankan, temukan seperti ini "find /tmp \(...
" maka Anda harus menentukan-path /tmp/foo/bar
. Jika di sisi lain Anda menjalankan find seperti inicd /tmp; find . \(...
maka Anda harus menentukan-path ./foo/bar
.sumber
find . -not \( -path ./CVS -prune \) -type f -mtime +100 -delete find: The -delete action atomatically turns on -depth, but -prune does nothing when -depth is in effect. If you want to carry on anyway, just explicitly use the -depth option.
-exec rm -rf {} \;
bukan-delete
.find
, ini jelas benar-benar, tapi itu membuatku tersandung. Jika Anda sedang mencari dalam direktori saat ini (dengan menetapkan.
sebagai jalur pencarian, atau tidak menetapkan satu sama sekali), kemungkinan besar Anda ingin pola Anda setelah-path
untuk memulai dengan./
, misalnya:find -not \( -path ./.git -prune \) -type f
.find searchdir \! \( -type d \( -path './excludedir/*' -o -path './excludedir2/*' -o -path './excludedir3/*' \) -prune \)
diikuti oleh kondisi apa pun yang harus cocok dengan yang Anda cari.Jelas ada beberapa kebingungan di sini seperti apa sintaks yang disukai untuk melewatkan direktori.
Opini GNU
Dari halaman manual menemukan GNU
Pemikiran
-prune
berhentifind
turun ke direktori. Hanya menentukan-not -path
masih akan turun ke direktori yang dilewati , tetapi-not -path
akan menjadi salah setiap kalifind
menguji setiap file.Masalah dengan
-prune
-prune
melakukan apa yang dimaksudkan, tetapi masih ada beberapa hal yang harus Anda perhatikan ketika menggunakannya.find
mencetak direktori yang sudah dipangkas.-prune
hanya bekerja dengan-print
dan tidak ada tindakan lain.-prune
bekerja dengan tindakan apa pun kecuali-delete
. Mengapa itu tidak berhasil dengan delete? Agar-delete
dapat bekerja, temukan kebutuhan untuk melintasi direktori dalam urutan DFS, karena-delete
pertama-tama akan menghapus daun, lalu orang tua dari daun, dll ... Tetapi untuk menentukan-prune
agar masuk akal,find
perlu menekan direktori dan berhenti turun, yang jelas tidak masuk akal dengan-depth
atau-delete
di.Performa
Saya membuat tes sederhana dari tiga jawaban teratas yang dipilih untuk pertanyaan ini (diganti
-print
dengan-exec bash -c 'echo $0' {} \;
untuk menunjukkan contoh tindakan lain). Hasilnya di bawahKesimpulan
Kedua sintaks f10bit ini dan sintaks Daniel C. Sobral ini mengambil 10-25ms untuk menjalankan rata-rata. Sintaks GetFree , yang tidak digunakan
-prune
, membutuhkan 865 ms. Jadi, ya ini adalah contoh yang agak ekstrem, tetapi jika Anda peduli dengan waktu yang diperlukan dan melakukan apa pun yang intensif, Anda harus menggunakannya-prune
.Catatan sintaksis Daniel C. Sobral melakukan yang lebih baik dari kedua
-prune
sintaksis; tapi, saya sangat curiga ini adalah hasil dari beberapa caching karena pergantian urutan di mana keduanya berlari menghasilkan hasil yang berlawanan, sedangkan versi non-prune selalu paling lambat.Skrip Tes
sumber
-prune
saya tahu jarang ada perbedaan. Perlu diingat bahwa perintah mana yang mulai lebih dulu akan mendapat manfaat dari kinerja cpu, penurunan kinerja cpu kemudian > menyebabkan minor melambat (saya melakukan pembersihan cache sebelum setiap perintah sebagai saran @ndemou)name1() name2() name3()
di antara skrip uji @BroSlow di atas untuk mengubah perintah eksekusi untuk mendapatkan visual tentang apa yang saya katakan. Dalam kehidupan nyata, itu tidak terlalu mencolok di antara keduanya.Ini adalah satu-satunya yang bekerja untuk saya.
Mencari "MyFile" tidak termasuk "Direktori". Beri penekanan pada bintang-bintang *.
sumber
! -path '*/Directory/*'
ke perintah Anda secara berurutan untuk mengabaikan banyak direktoridocker container
satunya karya dengansh -c "find..."
Salah satu opsi adalah dengan mengecualikan semua hasil yang berisi nama direktori dengan grep. Sebagai contoh:
sumber
-prune
) - tidak.find . -name '*.js' | grep -v excludeddir | grep -v excludedir2 | grep -v excludedir3
tetapi mungkin ada beberapa cara grep.egrep -v '(dir1|dir2|dir3)'
. Namun, dalam studi kasus khusus ini, akan lebih baik untuk mengecualikan direktori dalamfind
dirinya sendiri.Saya lebih suka
-not
notasi ... lebih mudah dibaca:sumber
find
mengatakan: "Untuk mengabaikan direktori dan file di bawahnya, gunakan -prune".find . -iname '*' -and -not -path './somePath'
tidak mencegahnya memasuki direktori tersebut.find . -iname '*' -not -path './.git/*'
find . -not -path "*/.git*"
akan apa yang Anda inginkan.Gunakan opsi -proune. Jadi, sesuatu seperti:
'-Type d -name proc -prune' hanya mencari direktori yang bernama proc untuk dikecualikan.
'-O' adalah operator 'ATAU'.
sumber
-print
sampai akhir dapat meningkatkan hasil.find . -type d -name .hg -prune -o -name data
mengabaikan isi.hg
direktori (banyak) , tetapi mendaftar.hg
direktori itu sendiri. Dengan-print
, itu hanya mendaftar direktori "data" yang saya cari.-prune
pasti berfungsi dan merupakan jawaban terbaik karena mencegah turun ke direktori yang ingin Anda kecualikan.-not -path
yang masih mencari direktori yang dikecualikan, itu hanya tidak mencetak hasilnya, yang bisa menjadi masalah jika direktori yang dikecualikan dipasang volume jaringan atau Anda tidak memiliki izin.Bagian yang sulit adalah yang
find
sangat khusus tentang urutan argumen, jadi jika Anda tidak melakukannya dengan benar, perintah Anda mungkin tidak berfungsi. Urutan argumen umumnya seperti:{path}
: Taruh semua argumen terkait jalur terlebih dahulu, seperti. -path './dir1' -prune -o
{options}
: Saya paling sukses ketika menempatkan-name, -iname, etc
sebagai opsi terakhir dalam grup ini. Misalnya-type f -iname '*.js'
{action}
: Anda akan ingin menambahkan-print
saat menggunakan-prune
Berikut ini contoh kerjanya:
sumber
Ini adalah format yang saya gunakan untuk mengecualikan beberapa jalur:
Saya menggunakan ini untuk menemukan semua file tidak di jalur ". *":
sumber
Pendekatan -path -prune juga bekerja dengan wildcard di jalan. Berikut ini adalah pernyataan find yang akan menemukan direktori untuk server git yang melayani beberapa repositori git meninggalkan direktori internal git:
sumber
Untuk mengecualikan beberapa direktori:
Untuk menambahkan direktori, tambahkan
-o -path "./dirname/*"
:Tetapi mungkin Anda harus menggunakan ekspresi reguler , jika ada banyak direktori untuk dikecualikan.
sumber
Ada banyak jawaban bagus, hanya butuh beberapa waktu untuk memahami untuk setiap elemen perintah dan logika di baliknya.
find akan mulai menemukan file dan direktori di direktori saat ini, karenanya
find .
.The
-o
pilihan singkatan logis OR dan memisahkan dua bagian dari perintah:Direktori atau file apa pun yang bukan direktori ./misc tidak akan lulus tes pertama
-path ./misc
. Tetapi mereka akan diuji terhadap ekspresi kedua. Jika nama mereka sesuai dengan pola yang*.txt
mereka cetak, karena-print
opsi.Ketika menemukan mencapai direktori ./misc, direktori ini hanya memenuhi ekspresi pertama. Jadi
-prune
opsi akan diterapkan untuk itu. Ini memberitahu perintah find untuk tidak menjelajahi direktori itu. Jadi setiap file atau direktori di ./misc bahkan tidak akan dieksplorasi oleh find, tidak akan diuji terhadap bagian kedua dari ekspresi dan tidak akan dicetak.sumber
Untuk solusi yang berfungsi (diuji pada Ubuntu 12.04 (Precise Pangolin)) ...
akan mencari file MP3 dalam folder dan subfolder saat ini kecuali pada dir1 subfolder.
Menggunakan:
... untuk mengecualikan dir1 DAN dir2
sumber
trik yang baik untuk menghindari mencetak direktori yang sudah dipangkas adalah menggunakan
-print
(berfungsi-exec
juga) setelah sisi kanan-or
setelahnya-prune
. Sebagai contoh, ...akan mencetak path semua file di bawah direktori saat ini dengan ekstensi `.j2", melewatkan semua direktori tersembunyi. Rapi. Tetapi juga akan mencetak mencetak path lengkap dari setiap direktori yang dilewati, seperti disebutkan di atas. Namun, berikut tidak, ...
karena secara logis ada yang tersembunyi
-and
setelah-iname
operator dan sebelum -cetak. Ini mengikatnya ke bagian kanan-or
klausa karena urutan operasi dan asosiatif boolean. Tetapi dokumen mengatakan ada yang tersembunyi-print
jika (atau salah satu sepupunya ...-print0
, dll) tidak ditentukan. Jadi mengapa bukan bagian kiri dari-or
cetakan? Rupanya (dan saya tidak mengerti ini dari pertama saya membaca halaman manual), itu benar jika tidak ada-print
-atau DI-exec
MANA SAJA, dalam hal ini, -cetak secara logis ditaburkan sedemikian rupa sehingga semuanya dicetak. Jika bahkan SATUprint
Operasi-gaya dinyatakan dalam klausa apa pun, semua yang logis disembunyikan pergi dan Anda hanya mendapatkan apa yang Anda tentukan. Sekarang terus terang, saya mungkin lebih suka sebaliknya, tetapi kemudianfind
dengan hanya operator deskriptif tampaknya tidak melakukan apa-apa, jadi saya kira itu masuk akal seperti itu. Seperti disebutkan di atas, ini semua berfungsi dengan-exec
baik, jadi yang berikut ini memberikanls -la
daftar lengkap untuk setiap file dengan ekstensi yang diinginkan, tetapi tidak mencantumkan level pertama dari setiap direktori tersembunyi, ...Bagi saya (dan orang lain di utas ini),
find
sintaksis mendapatkan barok cukup cepat, jadi saya selalu melempar parens untuk membuat PASTI saya tahu apa yang mengikat apa, jadi saya biasanya membuat makro untuk tipe-kemampuan dan membentuk semua pernyataan seperti itu. ..Sulit untuk salah dengan mengatur dunia menjadi dua bagian dengan cara ini. Saya harap ini membantu, meskipun tampaknya tidak mungkin bagi siapa pun untuk membaca hingga jawaban ke-30 dan memilihnya, tetapi orang dapat berharap. :-)
sumber
Anda dapat menggunakan opsi prune untuk mencapai ini. Seperti pada contoh:
Atau opsi grep "grep -v" terbalik:
Anda dapat menemukan instruksi dan contoh terperinci di Linux find command mengecualikan direktori dari pencarian .
sumber
find . -type f -print -o -path "*/node_modules" -prune
... menggunakan wildcard ini melompati "node_modules" di tingkat mana pun; menggunakan-print
pada alternatif pertama-type f -print
hanya membuat bagian cetak, sehingga direktori "node_modules" sendiri tidak terdaftar. (dapat juga dibalikkanfind . -path "*/node_modules" -prune -o -type f -print
)./node_modules
dan*/node_modules
dari itu. Untuk kasus saya, di mananode_modules
hanya ada di direktori tempat saya memulai pencarian (dan di bawahnode_modules
direktori itu), saya dapat menggunakanfind . -type f -print -o -path "./node_modules" -prune
karena tidak akan adanode_modules
direktori di bawah direktori lain.node_modules
subdirektori, tetapi ada juga subdirektori yang memiliki node_modules mereka sendiri ..../node_modules
hanya menggunakan kecocokan subdirektori dinode_modules
bawah direktori saat ini.
dan memangkasnya; menggunakan*/node_modules
kecocokan dan memangkas direktori pada kedalaman apa pun, karena*
sebagai gumpalan cocok dengan awalan jalur terkemuka, seperti./test5/main/node_modules
, tidak hanya./
awalan. Ini*
adalah wildcard, tetapi sebagai glob bukan sebagai regex.sumber
find ~/Projects -name '*.js' -\! -name 'node_modules' -prune
masih membuka file dengannode_modules
di jalur merekafind ~/Projects -path ~/Projects/node_modules -prune -o -name '*.js' -print
. Nama jalur itu harus sama persis dengan apa yang akan dicetak jika akan mencetak direktori.tampaknya bekerja sama dengan
dan lebih mudah untuk mengingat IMO.
sumber
TLDR: pahami direktori root Anda dan sesuaikan pencarian Anda dari sana, menggunakan
-path <excluded_path> -prune -o
opsi. Jangan menyertakan trailing/
di ujung jalur yang dikecualikan.Contoh:
find / -path /mnt -prune -o -name "*libname-server-2.a*" -print
Untuk secara efektif menggunakan
find
Saya percaya bahwa sangat penting untuk memiliki pemahaman yang baik tentang struktur direktori sistem file Anda. Di komputer rumah saya, saya memiliki multi-TB hard drive, dengan sekitar setengah dari konten yang didukung menggunakanrsnapshot
(yaitu,rsync
). Meskipun mencadangkan ke drive independen (duplikat) secara fisik, drive tersebut dipasang di bawah direktori system root (/
) saya/mnt/Backups/rsnapshot_backups/
:The
/mnt/Backups/rsnapshot_backups/
direktori saat ini menempati ~ 2,9 TB, dengan ~ file 60M dan folder; hanya dengan menelusuri konten-konten tersebut membutuhkan waktu:Jadi, kapan saja saya perlu mencari file di
/
partisi (root) saya, saya harus berurusan dengan (hindari jika mungkin) melintasi partisi backup saya.CONTOH
Di antara berbagai pendekatan yang disarankan di utas ini ( Cara mengecualikan direktori dalam perintah. ), Saya menemukan bahwa pencarian menggunakan jawaban yang diterima jauh lebih cepat - dengan peringatan.
Solusi 1
Katakanlah saya ingin mencari file sistem
libname-server-2.a
, tetapi saya tidak ingin mencari melaluirsnapshot
backup saya . Untuk menemukan file sistem dengan cepat, gunakan jalur kecualikan/mnt
(mis. Gunakan/mnt
, tidak/mnt/
, atau/mnt/Backups
, ...):... menemukan file itu hanya dalam beberapa detik, sementara ini membutuhkan waktu lebih lama (tampaknya muncul kembali melalui semua direktori "yang dikecualikan"):
Solusi 2
Solusi lain yang ditawarkan di utas ini ( SO # 4210042 ) juga berkinerja buruk:
RINGKASAN | KESIMPULAN
Gunakan pendekatan yang diilustrasikan dalam " Solusi 1 "
yaitu
mencatat bahwa setiap kali Anda menambahkan trailing
/
ke jalur yang dikecualikan,find
perintah kemudian secara rekursif masuk ke/mnt/*
direktori (semua itu) - yang dalam kasus saya, karena/mnt/Backups/rsnapshot_backups/*
subdirektori, juga menyertakan ~ 2,9 TB file untuk dicari! Dengan tidak menambahkan trailing/
pencarian harus selesai segera (dalam hitungan detik)."Solusi 2" (
... -not -path <exclude path> ...
) juga tampaknya mencari secara rekursif melalui direktori yang dikecualikan - tidak mengembalikan kecocokan yang dikecualikan, tetapi menghabiskan waktu pencarian yang tidak perlu.Mencari di dalam
rsnapshot
cadangan itu:Untuk menemukan file di salah satu
rsnapshot
cadangan per jam / harian / mingguan / bulanan saya ):Tidak termasuk direktori bersarang:
Di sini, saya ingin mengecualikan direktori bersarang, misalnya
/mnt/Vancouver/projects/ie/claws/data/*
saat mencari dari/mnt/Vancouver/projects/
:Selain itu: Menambahkan
-print
di akhir perintah akan menekan cetakan direktori yang dikecualikan:sumber
find
, ini adalah jumlah entri direktori yang harus diperiksa. Jadi jauh lebih buruk jika Anda memiliki banyak, banyak file kecil (terutama jika mereka semua ditautkan multipel!) Daripada jika Anda hanya memiliki sedikit file multi-gigabyte.sudo ls -R / | wc -l
menunjukkan ~ 76,5 juta file (kebanyakan didukung kecuali file sistem "non-konfigurasi");/mnt/Vancouver/
denganls -R | wc -l
menunjukkan ~ 2,35 juta file;/home/victoria/
berisi file 0,668M.Anda juga dapat menggunakan ekspresi reguler untuk memasukkan / mengecualikan beberapa file / dirs pencarian Anda menggunakan sesuatu seperti ini:
Ini hanya akan memberi Anda semua file js, vue, css, dll tetapi tidak termasuk semua file di folder
node_modules
danvendor
.sumber
Saya menggunakan
find
untuk menyediakan daftar filexgettext
, dan ingin menghilangkan direktori tertentu dan isinya. Saya mencoba banyak permutasi-path
dikombinasikan dengan-prune
tetapi tidak dapat sepenuhnya mengecualikan direktori yang saya inginkan hilang.Walaupun saya dapat mengabaikan isi direktori yang saya inginkan diabaikan,
find
kemudian mengembalikan direktori itu sendiri sebagai salah satu hasil, yang menyebabkanxgettext
crash sebagai hasilnya (tidak menerima direktori; hanya file).Solusi saya adalah cukup gunakan
grep -v
untuk melewati direktori yang tidak saya inginkan dalam hasil:Apakah ada argumen untuk
find
itu akan berhasil 100%, saya tidak bisa mengatakan dengan pasti. Menggunakangrep
adalah solusi cepat dan mudah setelah sakit kepala.sumber
Tidak ada jawaban sebelumnya yang bagus di Ubuntu. Coba ini:
Saya menemukan ini di sini
sumber
Ini cocok untuk saya di Mac:
Ini akan mengecualikan
vendor
danapp/cache
mengarahkan untuk nama pencarian yang diakhiri denganphp
.sumber
Bagi Anda yang menggunakan UNIX versi lama yang tidak dapat menggunakan -path atau -not
Diuji pada SunOS 5.10 bash 3.2 dan SunOS 5.11 bash 4.4
sumber
Bagaimana cara menggunakan opsi prune-of-find-in-sh adalah jawaban yang sangat baik oleh Laurence Gonsalves tentang cara
-prune
kerjanya.Dan inilah solusi generiknya:
Untuk menghindari mengetik
/path/to/seach/
beberapa kali, membungkusfind
dalampushd .. popd
pasangan.sumber
-path
harus sesuai dengan nama yang menemukan akan mencetak jika ingin mencetak direktori jadi, misalnya,find . -path ./.git -prune -o -print
ataufind $HOME/foo -path $HOME/foo/.git -prune -o -print
Beberapa jawaban hanya mengatakan-path somedir
yang sayangnya tidak cukup tepat untuk berguna.Untuk apa yang saya butuhkan ini berfungsi seperti ini, mencari
landscape.jpg
di semua server mulai dari root dan mengecualikan pencarian di/var
direktori:find / -maxdepth 1 -type d | grep -v /var | xargs -I '{}' find '{}' -name landscape.jpg
find / -maxdepth 1 -type d
daftar semua d irectories di/
grep -v /var
mengecualikan `/ var 'dari daftarxargs -I '{}' find '{}' -name landscape.jpg
jalankan perintah apa saja, sepertifind
dengan setiap direktori / hasil dari daftarsumber
/
belum dikecualikan. Anda mungkin perlused 1d
.Perintah-perintah berikut ini berfungsi:
Jika Anda memiliki masalah dengan find, gunakan
-D tree
opsi untuk melihat informasi analisis ekspresi.Atau
-D all
, untuk melihat semua informasi eksekusi.sumber
Saya menemukan nama fungsi dalam file sumber C mengecualikan * .o dan mengecualikan * .swp dan mengecualikan (bukan file biasa) dan mengecualikan output dir dengan perintah ini:
sumber
Lebih baik gunakan
exec
tindakan daripadafor
loop:Ini
exec ... '{}' ... '{}' \;
akan dieksekusi sekali untuk setiap file yang cocok, menggantikan kawat gigi'{}'
dengan nama file saat ini.Perhatikan bahwa kurung kurawal ditutup dengan tanda kutip tunggal untuk melindunginya dari interpretasi sebagai tanda baca script shell * .
Catatan
* Dari bagian CONTOH di
find (GNU findutils) 4.4.2
halaman manualsumber
exec
sering menggunakan tindakan dan merasa sangat berguna. Saya biasanya menambahkan tanda kutip antara{}
seandainya ada spasi di jalur file yang memberikan"{}"
.{}
tidak berfungsi untuk file dengan spasi putih dalam nama mereka) dan melihat ke halaman manual, tampaknya mengutip hanya diperlukan untuk menghindari mereka disalahartikan sebagai tanda baca skrip shell. Dalam hal ini, Anda akan menggunakan kutipan tunggal:'{}'
cp
ataumv
ataurm
. Saya akan memeriksanyaSaya mencoba perintah di atas, tetapi tidak ada yang menggunakan "-prune" bekerja untuk saya. Akhirnya saya mencoba ini dengan perintah di bawah ini:
sumber