簡體   English   中英

如果文件存在於單個命令中,則在Linux中重命名文件

[英]Rename file in Linux if file exist in a single command

如果文件存在於單個命令中,則需要在Linux中重命名文件。

假設我想搜索test.text文件,我想用test.text.bak替換它然后我觸發以下命令

find / -name test.text如果它存在,那么我發出命令mv test.text test.text.bak

在這種情況下,我正在執行兩個命令,但我希望這應該在單個命令中發生。

謝謝

如果你想在dir的子目錄中找到test.txt並移動它,試試吧

find dir -name test.txt -exec mv {} {}.bak \;

這將移動符合條件的所有文件。 如果要從當前目錄遍歷,請使用. 作為目錄而不是dir

從技術上講,這將在一個單獨的進程中為find匹配的每個文件生成一個單獨的命令,但它是“一個命令”,因為你使用find作為你實際上自己開始的唯一命令。 (如果願意的話,可以將find視為粗略的編程語言。)

只是:

mv test.text test.test.bak 

如果文件不存在,則不會重命名任何內容。 要在沒有文件退出時抑制錯誤消息,請使用以下語法:

mv test.text test.test.bak 2>/dev/null
for FILE in `find . -name test.test 2>/dev/null`; do mv $FILE $FILE.bak; done

這將搜索當前和子目錄中名為“test.test”的所有文件,然后將每個文件重命名為.bak

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM