MacのターミナルでExtended Attributes(拡張属性)をまとめて一括削除するやり方

macOS

Macのターミナルで ls -l を実行した際、パーミッション隣に @ が表示される場合があります。
以下の例では shディレクトリのファイル一覧に @ がついて表示されています。

hoby2018@jupiter % ls -l sh
total 12
-rwxr-xr-x@  1 hoby2018  staff     181  1 14  2022 cop_BLUZZEYE_to_PC.sh
-rwxr-xr-x@  1 hoby2018  staff     186  1 14  2022 cop_BLUZZEYE_to_PC2.sh
-rwxr-xr-x@  1 hoby2018  staff     172  1 14  2022 cop_BUSTER_to_PC.sh
-rwxr-xr-x@  1 hoby2018  staff     176  1 14  2022 cop_UBUNTU_S_to_PC.sh
-rwxr-xr-x@  1 hoby2018  staff     177  1 14  2022 cop_UBUNTU_S_to_PC2.sh

これら @ をまとめて一括削除する場合は xattr -c コマンドを使用します。

hoby2018@jupiter % xattr -c sh/*
total 12
-rwxr-xr-x   1 hoby2018  staff     181  1 14  2022 cop_BLUZZEYE_to_PC.sh
-rwxr-xr-x   1 hoby2018  staff     186  1 14  2022 cop_BLUZZEYE_to_PC2.sh
-rwxr-xr-x   1 hoby2018  staff     172  1 14  2022 cop_BUSTER_to_PC.sh
-rwxr-xr-x   1 hoby2018  staff     176  1 14  2022 cop_UBUNTU_S_to_PC.sh
-rwxr-xr-x   1 hoby2018  staff     177  1 14  2022 cop_UBUNTU_S_to_PC2.sh

xattr のhelpでオプション確認できます。

hoby2018@jupiter ~ % xattr --help
usage: xattr [-l] [-r] [-s] [-v] [-x] file [file ...]
       xattr -p [-l] [-r] [-s] [-v] [-x] attr_name file [file ...]
       xattr -w [-r] [-s] [-x] attr_name attr_value file [file ...]
       xattr -d [-r] [-s] attr_name file [file ...]
       xattr -c [-r] [-s] file [file ...]

The first form lists the names of all xattrs on the given file(s).
The second form (-p) prints the value of the xattr attr_name.
The third form (-w) sets the value of the xattr attr_name to the string attr_value.
The fourth form (-d) deletes the xattr attr_name.
The fifth form (-c) deletes (clears) all xattrs.

options:
  -h: print this help
  -l: print long format (attr_name: attr_value and hex output has offsets and
      ascii representation)
  -r: act recursively
  -s: act on the symbolic link itself rather than what the link points to
  -v: also print filename (automatic with -r and with multiple files)
  -x: attr_value is represented as a hex string for input and output

googl翻訳

hoby2018@jupiter ~ % xattr --help
usage: xattr [-l] [-r] [-s] [-v] [-x] file [file ...]
       xattr -p [-l] [-r] [-s] [-v] [-x] attr_name file [file ...]
       xattr -w [-r] [-s] [-x] attr_name attr_value file [file ...]
       xattr -d [-r] [-s] attr_name file [file ...]
       xattr -c [-r] [-s] file [file ...]

最初の形式は、指定されたファイル上のすべてのxattrの名前をリストします。
2番目の形式(-p)は、xattrattr_nameの値を出力します。
3番目の形式(-w)は、xattrattr_nameの値を文字列attr_valueに設定します。
4番目の形式(-d)は、xattrattr_nameを削除します。
5番目の形式(-c)は、すべてのxattrを削除(クリア)します。

options:
  -h: このヘルプを印刷する
  -l: 長い形式を出力します(attr_name:attr_valueおよび16進出力にはオフセットがあり、
      アスキー表現)
  -r: 再帰的に行動する
  -s: リンクが指しているものではなく、シンボリックリンク自体に作用します
  -v: ファイル名も出力します(-rおよび複数のファイルで自動)
  -x: attr_valueは、入力と出力の16進文字列として表されます

参考にさせていただいたサイト
https://utano.jp/entry/2015/06/mac-ls-remove-at-sign/

タイトルとURLをコピーしました