[解決済み] コマンドライン:検索結果をrmにパイプする
2022-04-26 18:08:07
質問
15日以上前のSQLファイルを削除するコマンドを作ろうとしています。
findの部分はうまくいっていますが、rmがうまくいきません。
rm -f | find -L /usr/www2/bar/htdocs/foo/rsync/httpdocs/db_backups -type f \( -name '*.sql' \) -mtime +15
削除したいファイルのリストが表示されるのですが、削除されません。 パスは正しいです。
usage: rm [-f | -i] [-dIPRrvW] file ...
unlink file
/usr/www2/bar/htdocs/foo/rsync/httpdocs/db_backups/20120601.backup.sql
...
/usr/www2/bar/htdocs/foo/rsync/httpdocs/db_backups/20120610.backup.sql
何が間違っているのでしょうか?
どうすればいいですか?
実際に配管しているのは
rm
's
出力
の入力に
find
. あなたが欲しいのは、出力された
find
として
引数
から
rm
:
find -type f -name '*.sql' -mtime +15 | xargs rm
xargs
は、標準入力を別のプログラムの引数に変換するコマンドで、より正確には
man
のページをご覧ください。
標準入力からコマンドラインをビルドして実行する
なお、ファイル名に空白文字が含まれる可能性がある場合は、それを修正する必要があります。
find -type f -name '*.sql' -mtime +15 -print0 | xargs -0 rm
でも、実は
find
には、そのためのショートカットがあります。
-delete
オプションを使用します。
find -type f -name '*.sql' -mtime +15 -delete
において、以下の警告にご注意ください。
man find
:
Warnings: Don't forget that the find command line is evaluated
as an expression, so putting -delete first will make find try to
delete everything below the starting points you specified. When
testing a find command line that you later intend to use with
-delete, you should explicitly specify -depth in order to avoid
later surprises. Because -delete implies -depth, you cannot
usefully use -prune and -delete together.
<サブ
追記:直接パイプで
rm
はオプションではありません。
rm
は標準入力にファイル名を期待しない。現在あなたがしていることは、それらを逆向きにパイプすることです。
関連
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み] コマンドラインからすべての環境変数をリストアップ
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
-
[解決済み] シェルスクリプト - <date>以降に変更されたすべてのファイルを取得します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 全ユーザーのcronジョブを一覧表示する方法を教えてください。
-
[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
-
[解決済み] コマンドラインからdiffをカラー化する方法
-
[解決済み] ファイルディスクリプタとは何か、わかりやすく解説します。
-
[解決済み] ダッシュ/ハイフンで始まる文字列をgrepするにはどうしたらいいですか?
-
[解決済み] UNIXにおけるwall-clock-time, user-cpu-time, system-cpu-timeとは具体的にどのようなものですか?
-
[解決済み] 標準入力にタイムスタンプを前置するUnixユーティリティはありますか?
-
[解決済み] Unixでtarコマンドの出力をオフにするにはどうしたらいいですか?[クローズド]です。
-
[解決済み] パイプラインでstdoutを強制的にラインバッファリングする
-
[解決済み] sed または awk: パターンに従って n 行を削除する