やりたい事:/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。
冗談です。どなたかお力をお貸しください!
連投すみません.朝なので寝ぼけてました.
cd /var/www/html/ドメイン名/data/
for dir in * ; do \
rm -fr "${dir}"/abc/* \
done
わざわざcdしなくても良かったです...
# ↑の回答って消せないんでしょうか?
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
うぐが・・・。
うがー!駄目でした。
ちょっとまどろっこしいですが,
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
というのがだーっと表示されて終わりました・・・。できなかったようです。
うがー。
連投すみません.朝なので寝ぼけてました.
cd /var/www/html/ドメイン名/data/
for dir in * ; do \
rm -fr "${dir}"/abc/* \
done
わざわざcdしなくても良かったです...
# ↑の回答って消せないんでしょうか?
あなたが神か!素晴らしいです。
今コマンド実行中です。たぶん成功です!
ありがとうございます!
さらっとコード書けるひとは本当にすごい。
#追記
無事に完了できました!
本当にありがとうございます!
あなたが神か!素晴らしいです。
今コマンド実行中です。たぶん成功です!
ありがとうございます!
さらっとコード書けるひとは本当にすごい。
#追記
無事に完了できました!
本当にありがとうございます!