人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【Linux】Fedoraで大量のファイル(ディレクトリ含む)を削除しようとしたのですが、rm -rfでは無理なのでググったら「xargs?」ということがわかり、掲載されているコマンドを参考にして試してみたのですがどうしてもうまくいきません。

やりたい事:/var/www/html/ドメイン名/data/*/abc/* を全て消し去りたい。

どなたか無知な私にお知恵をお貸しください。

# ls /var/www/html/ドメイン名/data/*/abc/* | xargs -0 rm -rf
-bash: /bin/ls: Argument list too long(はてな文字数制限のため以下同メッセージ省略)
# ls /var/www/html/ドメイン名/data/*/abc/* > delete.txt | xargs
-bash: /bin/ls: Argu
# ls /var/www/html/ドメイン名/data/*/abc/* | xargs -0 rm -rf
-bash: /bin/ls: Argu
# echo /var/www/html/ドメイン名/data/*/abc/* | xargs -0 rm -rf
xargs: argu
-bash: echo: write error: Broken pipe
# getconf ARG_MAX
131072
# find /var/www/html/ドメイン名/data/*/abc/* -type f -print0 | xargs -0 rm -rf
-bash: /usr/bin/find: Argu
# find /var/www/html/ドメイン名/data/*/abc/* -print0 | xargs -0 rm -rf
-bash: /usr/bin/find: Argu
# jinseiowata(^^)

個人的にCUIなんて大嫌いです・・・。GUIこそが至高さ!鯖管は間違いなくドM。
冗談です。どなたかお力をお貸しください!


●質問者: qwenty
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ABC bash Cui DELETE echo
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● toohigh
●20ポイント

xargs を使わない方向での話になりますが、Argu... は、ワイルドカード(つまり *) に該当する全ディレクトリ名・ファイル名を一覧にした結果、引数としてあまりに長い文字列になっている、という内容のエラーになります。


また、rm -rf の場合は、abc を消せば abc の下層にある全ファイルが一緒に消せるので、abc の後ろの /* は要らないような気がします。もちろん abc/ というディレクトリ自体は空のままで消さずにおきたい、ということでしたら abc/* で指定する必要がありますけど・・。


というわけで、こんな感じだといかがでしょうか。

# cd //var/www/html/ドメイン名/data

# rm -rf */abc

◎質問者からの返答

abc/というディレクトリ自体は空のままで残す必要があるのでabc/*。

-bash-3.1# cd /var/www/html/ドメイン名/data

-bash-3.1# rm -rf */abc/*

-bash: /bin/rm: Argument list too long

うぐが・・・。

うがー!駄目でした。


2 ● peo3
●0ポイント

ちょっとまどろっこしいですが,

cd /var/www/html/ドメイン名/data/

for dir in * ; do \

cd "$dir" \

rm -fr abc/* \

cd - \

done

とかいかがでしょうか.

/var/www/html/ドメイン名/data/*の数が多すぎなければうまくいくと思います.

# 試すときはいきなりrm -frをせずに,echo rm -frとすることをお薦めします(^^

◎質問者からの返答

コピペして実行してみました。echo rm -rfにしました。

-bash: cd: ***: No such file or directory

というのがだーっと表示されて終わりました・・・。できなかったようです。

うがー。


3 ● peo3
●60ポイント ベストアンサー

連投すみません.朝なので寝ぼけてました.

cd /var/www/html/ドメイン名/data/

for dir in * ; do \

rm -fr "${dir}"/abc/* \

done

わざわざcdしなくても良かったです...

# ↑の回答って消せないんでしょうか?

◎質問者からの返答

あなたが神か!素晴らしいです。

今コマンド実行中です。たぶん成功です!

ありがとうございます!

さらっとコード書けるひとは本当にすごい。

#追記

無事に完了できました!

本当にありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ