我正在嘗試根據某種模式移動檔案,在以下情況下,將包含的所有檔案移動2018到2018/檔案夾:
mv *2018* 2018/
該命令曾經與 一起使用2017,現在我得到了
mv:將 2018 重命名為 2018/2018:引數無效
所以我嘗試了zmv:
autoload -Uz zmv
mv *2018* 2018/
它有效,但不再適用于2019具有相同錯誤訊息的任何其他值。
我應該如何解決?或者根據某些正則運算式模式移動檔案的更好且簡單的方法是什么?
我也oh-my-zsh安裝了
uj5u.com熱心網友回復:
嘗試這個:
mv *2018*(.) 2018/
使用.glob 限定符(在括號中),通配符模式將只匹配常規檔案。如果沒有限定符,源模式將2018在要移動的專案串列中包含目標目錄,并且mv不能將目錄移動到自身中。
*2018*當我在我的系統上嘗試原始模式時,mv仍然按要求移動了匹配的檔案,然后報告了有關目錄的錯誤訊息。我懷疑當這似乎起作用時,錯誤訊息只是在其他一些文本中丟失了。
演示.glob 限定符:
>>>> ls -p1
2017/
2017a.txt
2017b.txt
2018/
2018a.txt
2018b.txt
2019/
2019a.txt
2019b.txt
>>>> print -l *2018*
2018
2018a.txt
2018b.txt
>>>> print -l *2018*(.)
2018a.txt
2018b.txt
>>>> mv *2018*(.) 2018/
>>>> ls -pR1
2017/
2017a.txt
2017b.txt
2018/
2019/
2019a.txt
2019b.txt
./2017:
./2018:
2018a.txt
2018b.txt
./2019:
順便說一句,zmv您問題中的示例是呼叫mv,而不是zmv. 此外,zmv通常需要參考引數。你不想zmv在這里,mv會做所有需要的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/455128.html
