2017-10-08 7 views

答えて

1
各ファイルの sh呼び出しに起因する非常に効率的ではない

、が、これは動作し、かつ安全である必要があります。

find path -type f -name '..*' -execdir sh -c 'fn=$1; dots=${fn%%[^.]*}; cleaned=${fn:${#dots}}; mv -nv "$fn" "$cleaned"' -- {} \; 

仕組み:

  • を検索ファイルは、少なくとも2で始まりますドット。
  • fnでファイル名パラメータ(sh -c '...' -- {}
  • ストアとして、ファイル名を渡し、shファイルのディレクトリに(一連のコマンドで)実行ストアdots
  • 計算のドットプレフィックスfnのサブストリングとして新しいファイル名、dots
  • の長さはmv
+0

Nを実行した後に開始氷。しかし、 'mv -n'や' -i'を使って、同じ名前の既存のファイルを誤って上書きしないようにすることをお勧めします。 –

+0

@GordonDavissonいいアイデア、ありがとう! – janos

関連する問題