スポンサーリンク

UNIXでfindコマンドの出力をxargsにつないで、ファイル操作をすることがよくあると思います。
個人的には、Unixでファイルやディレクトリを作成するときにファイル名やディレクトリ名にスペースを入れることはありませんが、そういったファイルを配布されることもごくまれにあるかもしれません。

findコマンドで見つかったスペース入りのファイル名を操作したいときは、 -print0 オプションと xargs の -0 オプションを組み合わせることで、処理することができます。
find /foo/bar -name '* *.txt' -print0 | xargs -0 rm

詳細については、下記ページを見てください。
[2008-12-08-1]


上記の find + xargs の組み合わせで、十分ことが足りるわけですが、
2つもプロセスを起動しなければならないとか、
コマンドが受け取れる引数の限界の問題がくるかもしれないので、
find単体で処理できるなら、findコマンドだけで処理したらいいんじゃないの?と思います。
そこで出てくるのが、 -exec オプションです。
find /foo/bar -name '* *.txt' -exec rm {} \;

いろいろな事がそうですが、Unixのコマンドラインも答えは1つではなく、様々な組み合わせで目的を実現することができます。



スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー