⑴ 初學linux命令,問一下用cp命令如何修改帶空格的文件或目錄名稱
空格前加上轉義符號「\」就可以了
⑵ linux中如何給文件夾內的所有文件進行隨機重命名
使用cp命令進行復制,格式為: cp 文件名 另外一個目錄的完整路徑/新的文件名比如,將/opt文件夾中的test文件,復制到/var文件夾內,並重命名為test2,命令如下: cp /opt/test /var/test2
⑶ linux里怎麼修改TXT文檔
1、進入Ubuntu桌面後,打開終端,快捷鍵為ctrl+alt+T。
⑷ linux下開發腳本搜索子目錄批量更改文件名
前言
本文主要給大家介紹了關於Linux shell用sed批量更改文件名的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
示例
去除特定字元
目標:將 2017-01-01.jpg、2018-01-01.jpg 改為 20170101.jpg、20180101.jpg
方法:將所有 - 替換為空
for file in `ls | grep .jpg`
do
newfile=`echo $file | sed 's/-//g'`
mv $file $newfile
done
這里使用sed進行標准輸出的字元串替換,其通用格式如下:
stdout | sed 's/pattern/replace/'
上述示例中,在末尾添加g用於替換所有匹配項,而不僅僅替換第一個匹配項。
中間插入字元
目標:將 book01.txt、paper02.txt 改為 book-01.txt、paper-02.txt
方法:用分組匹配分別獲取待插入位置兩側的字元串,再通過反向引用實現替換
for file in `ls | grep .txt`
do
newfile=`echo $file | sed 's/\([a-z]\+\)\([0-9]\+\)/\1-\2/'`
mv $file $newfile
done
分析
上述示例首先通過 ls 和 grep 命令得到待改名的文件列表,然後用 sed 命令進行字元串的替換,最後再使用 mv 命令來完成文件名的更改。
獲取待改名文件列表的方法有很多,可以通過 find 命令,也可以直接給出字元串,我們將在下文中提到。
注意 for 循環後面的 ls | grep .txt,這條命令用兩個反單引號括了起來,與 $(ls | grep .txt) 的作用相同,被包圍的字元串會被當作命令執行,然後返回字元串結果。
文件名包含空格的解決方法
我們可以直接將文件列表寫到 for 循環中,而不是通過命令來得到,例如:
for file in "file1 file2 file3"
do
...
done
可以看到 for 循環是通過空格來分割字元串,因此如果待更改的文件名中包含空格的話,就會被拆分成多個文件名,從而出錯。
要解決這個問題,我們可以將 IFS(內部欄位分隔符)設置為換行符 \n,這樣一來,for 循環就會按行來獲取變數的值,確保每次獲取的確實是一個完整的文件名。
設置 IFS 變數的命令需要放在 for 循環之前:
IFS=$'\n'
for file in `ls`
do
...
done
也可以直接使用 while read 命令一次讀取一行到變數 file 中:
ls | grep "*.txt" | while read file
do
...
done
使用 find 獲取文件列表
之前的示例中,我們是通過 ls 命令來獲取文件列表。該命令只能獲取某個目錄的文件,而且沒法進行多種條件的篩選。
而一說到文件的查找,不得不提到功能強大的 find 命令。該命令可以在多個層次的目錄中查找文件,並能夠設定諸如創建時間、文件大小、所有者等多種條件,查找起文件來特別方便靈活。
用 find 命令來獲取文件列表,再用 sed 命令配合正則表達式來修改文件名,這兩個命令的結合幾乎能完成所有常見的批量改名任務。
例如,將所有大於1M,且後綴為txt或jpg的文件,由形如 book_20170101.txt、image_20170101.jpg 的文件改名為 20170101-book.txt、20170101-image.jpg,代碼如下:
for file in `find . -size +1M -name "*_*.txt" -o -name "*_*.jpg"`
do
newfile=`echo $file | sed 's/\([a-z]\+\)_\([0-9]\+\)./\2-\1./'`
mv $file $newfile
done
⑸ Linux cp命令怎麼使用
該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同MSDOS下的命令一樣,功能十分強大。
語法: cp [選項] 源文件或目錄 目標文件或目錄
說明:該命令把指定的源文件復制到目標文件或把多個源文件復制到目標目錄中。
該命令的各選項含義如下:
- a 該選項通常在拷貝目錄時使用。它保留鏈接、文件屬性,並遞歸地拷貝目錄,其作用等於dpR選項的組合。
- d 拷貝時保留鏈接。
- f 刪除已經存在的目標文件而不提示。
- i 和f選項相反,在覆蓋目標文件之前將給出提示要求用戶確認。回答y時目標文件將被覆蓋,是互動式拷貝。
- p 此時cp除復制源文件的內容外,還將把其修改時間和訪問許可權也復制到新文件中。
- r 若給出的源文件是一目錄文件,此時cp將遞歸復制該目錄下所有的子目錄和文件。此時目標文件必須為一個目錄名。
- l 不作拷貝,只是鏈接文件。
需要說明的是,為防止用戶在不經意的情況下用cp命令破壞另一個文件,如用戶指定的目標文件名已存在,用cp命令拷貝文件後,這個文件就會被新源文件覆蓋,因此,建議用戶在使用cp命令拷貝文件時,最好使用i選項。
例子:
Cp -i file1 file2 (將文檔 file1 復製成 file2 . –i為提示確認。)
cp file1 dir1 將文檔 file1 復制到目錄 dir1 下,文件名仍為 file1.
cp /tmp/file1 . 將目錄 /tmp 下的文檔 file1復制到現行目錄下,檔名仍為 file1.
cp /tmp/file1 file2 將目錄 /tmp 下的文檔 file1現行目錄下,檔名為file2
cp -r dir1 dir2 (recursive ) 復制整個目錄.若目錄 dir2 不存在,則將目錄dir1,及其所有文檔和子目錄,復制到目錄 dir2 下,新目錄名稱為dir1.若目錄dir2不存在,則將dir1,及其所有文檔和子目錄,復制為目錄 dir2.
⑹ 請教linux復制文件時更改文件名
您好!
可以是用cp命令的方式進行復制並且更改文件名。
下圖是創建一個a文件,並用cp 命令復制a並且更改位rename_a,查看復制a前的MD5和復制後的rename_a的MD5值相同,證明文件復制並且更名了。
⑺ linux下怎麼復制一個文件到另外一個目錄並且重命名
用Linux的cp命令復制文件,目標文件參數指定成一個新的文件名,就可以實現復制文件的同時重命名文件的功能,比如下面這條命令將/root/fileaaa賦值到/home目錄下並重命名為filebbb:
cp
/root/fileaaa
/home/filebbb
⑻ 批處理按照順序復制文件到目標目錄並修改文件名
去下載一個linux下使用的軟體,cp命令這個軟體。(當然是下載windows版本的,linux的命令寫在批處理裡面逐條執行)
cmd進入cp軟體所在的目錄才可以運行的。
復制
cp 文件路徑 新路徑(全稱,例如:cp c:\windows\a.txt 一個空格 d:\123\b.txt)
刪除
rm -rf 文件名(無提示直接刪除)
在windows下操作的命令可以參考下linux的命令。大同小異。
⑼ linux 下怎麼修改文件名 及拷貝文件
您好!
可以是用cp命令的方式進行復制並且更改文件名。
下圖是創建一個a文件,並用cp
命令復制a並且更改位rename_a,查看復制a前的MD5和復制後的rename_a的MD5值相同,證明文件復制並且更名了。
⑽ Linux更改文件名保留源文件的命令是什麼
有三種方法,一種使用mv命令,直接重命名,保留源文件內容,另外一種建立軟連接ln -s命令,可以保留源文件內容及原名稱,類似於Windows快捷方式。還有一種cp命令復制一個副本出來。