結合最近才學到的find指令
find是個好指令,可以找出目前目錄下的特定檔案名稱的檔名
簡單說明一下使用法
使用法1, 找特定檔名。
find . -name [想找的名字(可搭配萬用字元)]
乍看之下跟ls很像,但是這傢伙可以自動找出子目錄中的檔名。但是光這點還不是很實用啊
使用法2, 找特定檔名後執行特定動作。
find . -name [*.txt] -exec rm -rvf {} \;
好,這很重要。上面示範了找到特定名稱後直接刪除。而且是連同同名子目錄下檔案一同遞歸刪除。上面的{}代表找到的檔案名稱,最後的\;代表執行指令到此為止。
好吧,上面的功能都是拿來刪除不需要的檔案的,根本沒有踏入正題
實際上很常用的功能:替單檔建立個別資料夾,然後把單檔歸檔
for file in `ls -1 *.avi` do mkdir -v ${file%.*} mv -v $file ${file%.*}/ done怎麼做到的?
首先找出特定單檔:這裡我用了找.avi檔。-1很重要,這個清單我並不想看到除了檔名以外的資訊。
然後用bash script裡面的字串操作,將最後的副檔名去除${file%.*}
接下來大家就知道啦,反正就是個別搬走。
但是這招現在有缺點,對付名字中間有空格的還是沒輒。還需要改進啊...
以上
0 件のコメント:
コメントを投稿