Files
根據“文件”輸出將文件排序到文件夾中
我有數百萬個沒有副檔名的文件,我想將它們分類到不同的文件夾中。我可以通過“文件”辨識文件,但最後我可以手動處理許多不同的類型。我想使用“文件”的輸出來 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。