私のLinuxサーバーのディレクトリには、次の名前パターンを持つ多くのファイルがあります。
1_file.txt
2_file.txt
3_file.txt
...
1455728_file.txt
最初の100000個のファイルを移動する方法はありますか(1_file.txt〜100000_file.txt) ディレクトリ入力1_100000、2番目の100000ファイル(100001_file.txt~200000_file.txt) ディレクトリ入力100001_200000、など…?
ベストアンサー1
未テスト
私は次のことをします:
#!/bin/bash
bottom=0
while [[ $bottom -lt 150000 ]] ; do
myfirst=$((bottom + 1))
mylast=$((bottom + 100000))
bottom=$((bottom + 100000))
dir="${myfirst}_$mylast"
[[ -d "$dir" ]] || mkdir "$dir"
seq $myfirst $mylast | \
while read p ; do
q="${p}_file.txt"
[[ -f "$q" ]] && echo "$q"
done | \
xargs --no-run-if-empty echo mv -t "$dir"
done
実際にしたい場合は削除してくださいecho
。echo mv