如何輸入並重新命名「Human (2012)」等資料夾?

如何輸入並重新命名「Human (2012)」等資料夾?

我透過命令列使用 FTP,遇到兩個問題。我無法重新命名或輸入資料夾,例如:

dir /home/folder1/Human (2012)

我試過:

cd ~/folder1/Human\ (2012)

在這裡我收到一條訊息說the folder does not exist

mv ~/folder1/Human\ (2012)

在這種情況下,我收到一條訊息:

syntaxfailure at (

我要怎麼解決這個問題?

答案1

您可以雙引號您的路徑:

cd ~/"folder1/Human (2012)"

或者您應該為(,)(空格)提供轉義序列(因為這些是特殊字元):

cd ~/folder1/Human\ \(2012\)

mv ~/"folder1/Human (2012)"

使用轉義序列:

mv ~/folder1/Human\ \(2012\)

答案2

\你對前面的空間有正確的想法。這適用於所有特殊字元——包括括號。在左括號前面加上一個反斜杠,在右括號前再加上一個反斜杠,這樣就可以了。

在這些情況下,製表符補全很有幫助...如果您開始輸入檔名,然後按Tab,它將自動補全檔名的其餘部分,並在必要時插入反斜線。 (如果您沒有輸入足夠的文件名來明確您指的是哪個文件,bash 仍會自動完成盡可能多的文件名。按兩次 Tab 鍵將顯示文件名可能完成的列表。)

答案3

我同意 snoop 的觀點,即執行此操作的方法是"在指定文件或目錄時使用標記。

但是,如果有一大堆目錄需要重命名,您可以將rename它們重新命名為更友善的名稱。重新命名的工作sed原理與rename重新命名檔案和目錄類似,但sed通常用於編輯檔案的內容。這是一個例子:

rename 's/ //g;s/\(//g;s/\)//g' ~/folder1/*

因此,如果您有以下目錄~/folder1

Human (2012)
Human (2011)
Human (2010)

它們將被重新命名為:

Human2012
Human2011
Human2010

運行以下命令以獲取更多資訊:

man rename

相關內容