Saya memiliki skrip ini untuk menghapus 4 baris pertama dari setiap file dalam folder jika ekstensi mereka .txt
.
Saya ingin dapat menempatkan file.command dengan skrip ini di folder yang sama sehingga saya bisa mengklik dua kali dan menjalankannya.
Jadi saya membuat file dengan ini:
#!/bin/bash
find . -type f -name "*.txt" -exec sed -i.bak '1,4d' {} \;
Jika saya menjalankan file, saya memiliki semua file txt Mac saya dihapus 4 :(
Saya pikir find .
itu dimaksudkan untuk tetap di folder yang sama ...
Bagaimana cara memperbaikinya agar perintah HANYA berjalan di folder file.command?
command-line
bash
Mr.Web
sumber
sumber
-maxdepth 1
dan menghapussed
bagian untuk melihat file yang akan terpengaruh-maxdepth 1
dan lihat apa yang terjadifind . -maxdepth 1 -type f -name "*.txt" -exec sed -i.bak '1,4d' {} \;
tetapi tidak ada yang terjadi ..Jawaban:
Kode ini:
benar-benar berfungsi, masalahnya adalah:
File yang dibuat dengan perintah tidak dibuat
executable
untuk itu:Kemudian jalankan perintah dari terminal dengan:
sumber
Seperti yang telah dikomentari,
find
secara default turun ke subdirektori.Lakukan ini sebagai gantinya:
sumber