Files如何從目錄中的所有文件名中刪除
如何從目錄中的所有文件名中刪除_
在 bash 中,我有一個解壓縮的目錄,其中有許多以
_
.我很確定我可以使用
rename
或mv
簡單地刪除_
每個文件的前綴。我嘗試:
for file; do mv "$file" "${file//_/}" done
但這並沒有我想要的效果。我可以使用什麼命令
_
從所有文件中刪除前綴?
1)
for file; do
循環位置參數,即腳本的命令行參數。用於for file in *; do
遍歷目錄中的文件(或_*
僅使用帶有下劃線前綴的文件。)2)您可以使用
${file#_}
而不是${file//_/}
從文件名的開頭刪除下劃線。${par#word}
專門從一開始就刪除了一個部分,它是一個標準功能,不像${par/pat/repl}
. 當然${file//_}
會刪除所有斜線(因為您使用了雙斜線),而不僅僅是第一個。
- 至少在 Linux (GNU userland) 和 FreeBSD 上,您可以使用
mv -n
它來要求它不要覆蓋任何文件。以防萬一。所以,
for file in _*; do mv -n -- "$file" "${file#_}" done