コマンドラインからディレクトリ (およびサブディレクトリ) 内のすべてのファイルにアクセスする方法を探しています。これは、開発マシンで私の同期されたレポが少しずれてしまったためです。
次の同期を行う前に、このマシンで時間的にすべてを優先したいと思います。
すべてのファイルに触れる簡単な方法はありますか?
それとも、ディレクトリを手動で同期した方がよいでしょうか?
(参考までに、同期にはドロップボックスを使用しています)
コマンドラインからディレクトリ (およびサブディレクトリ) 内のすべてのファイルにアクセスする方法を探しています。これは、開発マシンで私の同期されたレポが少しずれてしまったためです。
次の同期を行う前に、このマシンで時間的にすべてを優先したいと思います。
すべてのファイルに触れる簡単な方法はありますか?
それとも、ディレクトリを手動で同期した方がよいでしょうか?
(参考までに、同期にはドロップボックスを使用しています)
find
とともに使用xargs
して、現在または指定されたディレクトリ以下のすべてのファイルにアクセスできます。
find . -print0 | xargs -0 touch
現在のディレクトリ用。指定されたディレクトリの場合:
find /path/to/dir -print0 | xargs -0 touch
区切り文字を NULL にすることで、スペースを含むファイル名に対してコマンドを堅牢にするオプション-print0
とfind
一緒のオプション-0
。xargs
編集:
Jeremy J Starchar がコメントで述べているように、上記はGNU ツールチェーンの一部である場合find
にのみ適しています。xargs
GNU ツールを備えたシステムを使用している場合は、次を使用できます。
find . -exec touch {} \;
dcgregoryaによる編集:
非常に大きなデータセットに対してこれを行う必要があるため、このコマンドが (はるかに) 高速であることがわかりました。
find ./ -type d -print0 | xargs -I{} -0 bash -c "touch {}/*"
find をフォルダーの検索に限定し、フォルダー /* に対して touch を実行します。
So this is a solution to my immediate problem of touching all files, whether it works with dropbox will have to be seen.
In the root of the directory in question
find . -print -exec touch {} \;
(print is extraneous but it can be helpful for feedback)