我將 2013 年到 2015 年的大約 500 個 .txt 檔案放在一個資料夾中,我需要將 2013 年和 2014 年的所有檔案移動到其他資料夾中。
答案1
假設“2013年和2014年”表示“修改時間在2013 / 2014年”,您可以透過以下方式取得文件清單:
stat -c '%y %n' * | grep -v '^2015' | cut -d " " -f 4-
這是做什麼的:
stat -c '%y %n'
列印最後修改時間和檔案名稱
*
資料夾中的所有文件
grep -v '^2015'
排除2015年的
切-d“”-f 4-
最後去掉時間戳,只留下檔名(假設你沒有帶有嵌入換行符的奇怪檔名)
xargs
然後,您可以使用諸如 之類的工具,甚至是 for 循環(如果字元允許)來處理文件,以將它們移至所需的資料夾。
答案2
如果這些文件的名稱中包含年份,那就很簡單了。如果您熟悉終端,請參閱以下範例。
假設您要將 2013 年的所有檔案移至名為“2013files”的資料夾,其名稱類似於“2013 stuff.txt”或“january 2013.txt”
轉到您的資料夾
cd /path/to/your/folder/
建立要將檔案移至的資料夾
mkdir 2013files
然後移動名稱中包含“2013”的所有文件
rename ./*2013*.txt ./2013files
重要提示:在使用「重新命名」命令之前,請使用「cp」代替,以確保您沒有輸入任何內容,否則您最終可能只會得到一個檔案。
重要 (2):在執行任何操作之前始終備份您的文件