bashスクリプトを使用してワイルドカードをサポートしているプロセスで使用されていないファイルをどのように移動できますか?未使用のファイルを移動する
基本的な考え方は次のとおりです。
for file in $1..$n-1
if ! fuser file
mv file $n
$1..$n-1
は、ソースファイル/ディレクトリです
と$n
がターゲットパスです。
EDIT:ヘルプみんなのためのワーキング・スクリプト
#!/bin/bash
# Move files which are not open by any process
dest=${@:$#} # get last arg
for file in "${@:1:$#-1}"; do # get all but last args
fuser "$file" >/dev/null 2>&1 && continue
mv "$file" "$dest"
done
ありがとう!
EDIT2このスクリプトには、いくつかのディレクトリの下にある使用済みファイルがフューザによってチェックされていないバグがあります。後でこれをチェックします。
? –
他のプロセスによって開かれていない場合は、 'fuser'コマンドを使ってチェックすることができます。 – null