1
2つのドットが異なるディレクトリにあるファイルがあります。 私はそれらをすべてリストし、名前を一括して変更し、ドットを完全に削除する必要があります。2つのドットで始まり、バルクでファイル名を変更するリストファイル
どのようにすればよいですか?
2つのドットが異なるディレクトリにあるファイルがあります。 私はそれらをすべてリストし、名前を一括して変更し、ドットを完全に削除する必要があります。2つのドットで始まり、バルクでファイル名を変更するリストファイル
どのようにすればよいですか?
sh
呼び出しに起因する非常に効率的ではない
、が、これは動作し、かつ安全である必要があります。
find path -type f -name '..*' -execdir sh -c 'fn=$1; dots=${fn%%[^.]*}; cleaned=${fn:${#dots}}; mv -nv "$fn" "$cleaned"' -- {} \;
仕組み:
fn
でファイル名パラメータ(sh -c '...' -- {}
)sh
ファイルのディレクトリに(一連のコマンドで)実行ストアdots
fn
のサブストリングとして新しいファイル名、dots
mv
Nを実行した後に開始氷。しかし、 'mv -n'や' -i'を使って、同じ名前の既存のファイルを誤って上書きしないようにすることをお勧めします。 –
@GordonDavissonいいアイデア、ありがとう! – janos