`xargs` への引数の先頭にスペースが付かないようにするにはどうすればよいですか?

`xargs` への引数の先頭にスペースが付かないようにするにはどうすればよいですか?

内容がサブディレクトリに保存されていないアーカイブを、他のファイルでいっぱいのディレクトリに抽出したため、雑然としてわかりにくくなっています。

これを修正するために、アーカイブを新しい空のディレクトリに抽出し、そこにあるディレクトリ リストを使用して、混同された最初のディレクトリのファイルを削除したいと思います。ファイルは元々 '/usr/src/packages' ディレクトリに抽出されており、新しいディレクトリは です~/Programs/DBeaver

vfclists@hp01:~/Programs/DBeaver$ ls -l
total 216
-rw-r--r--  1 vfclists vfclists 48943 Oct 23 23:28 artifacts.xml
drwxr-xr-x  4 vfclists vfclists  4096 Oct 23 23:28 configuration
-rwxr-xr-x  1 vfclists vfclists 79058 Oct 23 22:58 dbeaver
-rw-r--r--  1 vfclists vfclists   206 Oct 23 23:28 dbeaver.ini
-rw-r--r--  1 vfclists vfclists  7919 Oct  9 14:05 dbeaver.png
drwxr-xr-x 23 vfclists vfclists  4096 Oct 23 23:28 features
-rwxr-xr-x  1 vfclists vfclists 35021 Oct 23 22:58 icon.xpm
drwxr-xr-x  2 vfclists vfclists  4096 Oct 23 23:28 licenses
drwxr-xr-x  4 vfclists vfclists  4096 Oct 23 23:28 p2
drwxr-xr-x  6 vfclists vfclists 20480 Oct 23 23:28 plugins
-rw-r--r--  1 vfclists vfclists  1791 Oct 23 23:28 readme.txt
vfclists@hp01:~/Programs/DBeaver$ 

私がやりたいのは、出力をlsxargs にパイプすることですが、コマンドを実行するとファイル名の先頭にスペースが追加されるため、次のようなテスト出力が得られます。

vfclists@hp01:~/Programs/DBeaver$ ls  | xargs -n 1 echo rm /usr/src/packages/
rm /usr/src/packages/ artifacts.xml
rm /usr/src/packages/ configuration
rm /usr/src/packages/ dbeaver
rm /usr/src/packages/ dbeaver.ini
rm /usr/src/packages/ dbeaver.png
rm /usr/src/packages/ features
rm /usr/src/packages/ icon.xpm
rm /usr/src/packages/ licenses
rm /usr/src/packages/ p2
rm /usr/src/packages/ plugins
rm /usr/src/packages/ readme.txt

ディレクトリとファイルの区別の問題もありますが、まずはこれに対処したいと思います。

rm -rf更新: はファイルでもディレクトリでも同じように機能することが判明しましたが、この例ではそれほど重要ではないので、単にrm xxxx次のように置き換える必要があります。rm -rf xxxx

答え1

引数を表示したい場所で-I {}、 およびを使用します。{}

xargs -I {} -n 1 echo rm /usr/src/packages/{}

( 以外のものも使用できますが{}{}非常に一般的です。)

これがないと、xargssimpy は入力を追加の引数として追加するため、どこにでもスペースを追加するという問題は発生しません。コマンドは入力を個別の引数として受け取ります。

特にファイルとディレクトリを区別したい場合は、findの代わりにを使用することをお勧めします。ls

ファイルのみを削除する場合は次のようになります:

find . -type f -exec rm /usr/src/packages/{} \;

関連情報