我用find命令找到了幾個文件。 的文件是型file_sakfksanf.txt,file_afsjnanfs.pdf,file_afsnjnjans.cpp的, 現在我想將它們與重命名和-exec命令重命名爲 mywish_sakfksanf.txt,mywish_afsjnanfs.pdf,mywish_afsnjnjans.cpp 只有第一個前綴被改變。我想嘗試一段時間,所以不要責怪我愚蠢。用find找回
用find找回
回答
如果你讀通過man
頁面的-exec
部分find
您將遇到{}
字符串,該字符串允許您將匹配用作參數-exec
中的參數。這將允許你使用你的find
比賽rename
以下列方式:
find . -name 'file_*' -exec rename 's/file_/mywish_/' {} \;
從手冊:
-exec 命令;
執行命令;如果返回0狀態,則返回true。所有跟在 之後的參數將被作爲命令的參數,直到由
;' is encountered. The string
{}'構成的參數 被替換爲 被當前文件名正在被處理的任何地方發生在該命令的參數 參數中,而不僅僅是在參數中它是單獨的,因爲 在某些版本的查找。這兩個構造可能需要 被轉義(用'\')或引用來保護它們免於通過shell來擴展 。有關使用 -exec選項的示例,請參閱EXAMPLES部分。指定的命令對每個匹配的文件運行一次。該命令在起始目錄中執行。有 不可避免的圍繞使用-exec動作的安全問題; 您應該改用-execdir選項。
雖然你問一個查找/ Exec解決方案,爲Mark Reed建議,你可能要考慮你的管道結果xargs
。如果這樣做,請確保將-print0
選項與find
以及-0
或-null
選項與xargs
配合使用,以避免由文件名中出現的空白或shell元字符造成的意外行爲。此外,考慮使用+
版本的-exec
(手動也),因爲這是find
的POSIX規範,因此應更便攜,如果你想在其他地方(不總是真)運行命令;它也以類似於xargs
的方式構建其命令行,這將導致調用rename
的次數減少。
這將是更有效地使用是'xargs'或'+'選項的'找到-exec':'找到。 -name'file_ *'-exec rename's/file_/mywish_ /'{} +'然後它只運行重命名一次或幾次,而不是每個文件一次。此外,這是假設一個特定的重命名命令語法,這是依賴於系統;這可能是'重命名_文件mywish_'而不是'命名的/ _文件/ mywish _ /'' –
@MarkReed:的'+'版和'xargs'替代包括提。我確定OP可以修改'rename'語法以符合他們自己的系統,如果他們需要的話。 – tojrobinson
不要以爲有一種方法,你可以這樣做只是覺得,你需要創建一個腳本:
#!/bin/bash
NEW=`echo $1 | sed -e 's/file_/mywish_/'`
mv $1 ${NEW}
然後,您可以:
find ./ -name 'file_*' -exec my_script {} \;
- 1. 使用map :: find查找密鑰並返回值
- 2. 如何使用find和where在單個環回找到
- 3. find()返回NULL Yii
- 4. 使用find命令查找文件
- 5. Hood.ie - 使用find找不到數據
- 6. 使用find命令找到計數行
- 7. 使用Find查找增量-exec
- 8. 無法找到Rad Treeview使用$ find
- 9. jQuery .find()偶爾找不到
- 10. 查找與find命令
- 11. 尋找具有.find在Python
- 12. string :: find找不到匹配
- 13. 如何使用'find'返回父目錄
- 14. 使用Find()返回undefined JavaScript和MongoDB
- 15. MongoDB find()返回空使用貓鼬 - node.js
- 16. jquery .find()不返回值
- 17. Laravel find ::返回所有行
- 18. FIND命令返回空值
- 19. Sailsjs find()回調動作
- 20. 查找正在返回「find:。:Permission denied」,但我不搜索
- 21. 爲什麼$('selector')find找不到與$ .find('selector')相同的對象?
- 22. el-get-executable-find:找不到'executable-find'命令'hg'
- 23. 測試控制器 - 使用find查找時未找到記錄
- 24. 使用Lodash _.find
- 25. 使用比FIND
- 26. 使用find(bash)
- 27. Jquery .find() - 限制哪裏可以找到
- 28. Excel Mid Find查找,從右到左看
- 29. jquery .find()找不到xml節點
- 30. Cheerio find方法無法找到刮
如果您創建一個腳本來重命名一個文件,然後可以使用該腳本與查找。 –
我們從不指責別人愚蠢。也許懶惰,但從不愚蠢。你有什麼嘗試? –
@MarkReed:+1搞笑:) –