Files

根據“文件”輸出將文件排序到文件夾中

  • June 27, 2020

我有數百萬個沒有副檔名的文件,我想將它們分類到不同的文件夾中。我可以通過“文件”辨識文件,但最後我可以手動處理許多不同的類型。我想使用“文件”的輸出來 grep 即“Word”,然後將其移動到“office”文件夾中。我可以為單個文件類型編寫它,但不能為我擁有的所有文件類型編寫它。如果那時我錯過了條件。我正在使用cygwin。任何人都可以幫助我給我一個想法如何做到這一點?謝謝!

彼得

代替grep,您可以在 shell case 構造中使用簡單的模式匹配。例如:

#!/bin/sh

for f in *; do 

 [ -f "$f" ] || continue

 ftype="$(file -b -- "$f")"

 case $ftype in 
   *"shell script"*)
     echo mv -- "$f" scripts/
     ;;
   *"C source"*|*"C++ source"*) 
     echo mv -- "$f" src/
     ;;

   .
   .
   .

   *) printf '%s: skipping unrecognized type "%s"\n' "$f" "$ftype" >&2
     ;; 
 esac

done

目標目錄必須存在(儘管使用 有條件地創建它們很簡單mkdir -p)。echo一旦你對它做正確的事情感到高興,就刪除es。

引用自:https://unix.stackexchange.com/questions/595319