私のソースの場所にあるファイルが日付範囲内にあるかどうかを確認したい場合は、yesの場合はスキップして次のファイルをチェックしてください。 シェルスクリプトの初心者で、これをどうやってやることができますか?ファイルが存在する場合はコピーしてください。bashにスキップしてください
-1
A
答えて
2
find
すでに存在するエントリのみが返されます。そこには問題はありませんが、結果を反復するために使用しているコードはひどく壊れています。
ここで問題となるのは、スキップするのではなく、一般的な正しい構文で、正確に関連する方法で(二次的に)問題があります。元のコードで最も直ちにバグを修正したとしても、BashPitfalls #1、DontReadLinesWithForに落ちてしまいます。
find
を使用する場合のベストプラクティスの詳細については、UsingFindを参照してください。それは言った、正しいアプローチの一つです:
#!/bin/bash
# ^^^- important: not /bin/sh
while IFS= read -r -d '' filename; do
mv "$filename" /to_path
done < <(find filedirectory_path/ -type f -newermt "$date1" ! -newermt "$date2" -print0)
...か...
find filedirectory_path/ -type f -newermt "$date1" ! -newermt "$date2" -exec mv '{}' /to_path \;
関連する問題
- 1. ファイルが存在する場合はファイルを削除してください
- 2. データベースがまだ存在しない場合は作成してください
- 3. Linux:入力ファイルにファイルパス名が既に存在する場合は、グロッピングファイルをスキップしてください
- 4. 存在する場合はWixインストーラにファイルを追加してください
- 5. 接尾辞が存在しない場合は追加してください。
- 6. ディレクトリが存在しない場合は作成してください
- 7. まだ存在していない場合、ファイル名に拡張子を追加してください。
- 8. mysqliのPHPが存在する場合は編集してください
- 9. すべてスキップしてください。
- 10. 存在しない場合はデータを挿入してください
- 11. ファイル名が既に存在する場合は、リンクを開く番号を追加してください。
- 12. まだ存在していない場合にのみ、辞書キーに値を追加してください。
- 13. 存在しない場合、エラーなしで項目が存在するか確認してください。
- 14. Java - .jarが存在しない場合は、.jarと同じディレクトリにファイルを作成してください。
- 15. Rails:password_confirmationが指定されている場合、パスワードが存在することを確認してください。
- 16. ファイルが存在しない場合にのみプロキシを使用してください。
- 17. キューが存在するか確認してください。
- 18. リダイレクトURLが存在するか確認してください。
- 19. update-alternativesによって管理されているディレクトリが存在しない場合は、bashをチェックしてください。
- 20. モデルが存在しない場合は、モデルを挿入して添付してください。
- 21. XElementがグローバルにnullの場合はチェックしてください
- 22. ファイルがない場合は、ファイルを検索してください。
- 23. ファイルがゴミすぎずに存在するか確認してください。
- 24. ファイルがPythonのHDFSに存在するか確認してください
- 25. ファイルにコンテンツを追加し、すでに存在する場合は追加しないでください
- 26. リモートサーバー上のファイルをチェックし、存在する場合はそれをダウンロードしてください。
- 27. 画像が存在しない場合は、新しい要素を追加してください
- 28. gitにコードが存在していないか確認してください。
- 29. 条件が満たされた場合、いくつかの手順をスキップしてください
- 30. 存在しない場合、web-sqlでマスターデータを一度だけアップロードしてください
私はあなたのスクリプトを理解していません。検索する-newrmtパラメータは何ですか?ファイル名の日付が最後の更新日を検索していますか? – Derlin
@Derlin、それはGNU拡張です。 manページで '-newerXY'を確認してください。 –
'find'は存在しないファイルが見つからないことに注意してください。ファイルのみが見つかるように '-type f'を追加してディレクトリ(etc)を除外することができます。見積もりのあなたの記法は間違っています。 'for'表記を使用するのは、ファイル名に空白(またはタブや改行)が含まれていない場合のみです。変数の使用を引用することを忘れないでください。日付変数の前に '$'を付けることを忘れないでください。一般に、あなたのコードが少し動くならあなたは最高の反応を得ます - あなたは実行されません(構文が無効です)。 –