これら2つのファイルはOffice 2011の製品であり、「コンテンツ」ディレクトリが削除されるのを防ぎます。どのように削除しますか?
sh-3.2# ls -l -a
total 21496
drwx------+ 15 Beef staff 480 Jan 14 23:32 .
drwxr-xr-x+ 19 Beef staff 608 Jan 14 23:40 ..
-rw-r--r--@ 1 Beef staff 10244 Jan 10 10:36 .DS_Store
-rw-r--r-- 1 Beef staff 0 Dec 25 23:13 .localized
drwxrwxrwx 47 Beef staff 1504 Jan 2 00:01 CSC119 - 1228
drwxrwxrwx 7 Beef staff 224 Jan 1 22:50 Chris 1228
drwxrwxr-x@ 3 Beef staff 96 Aug 25 2010 Contents
drwxrwxrwx@ 5 Beef staff 1
sh-3.2# cd Contents
sh-3.2# ls -l -a
total 0
drwxrwxr-x@ 3 Beef staff 96 Aug 25 2010 .
drwx------+ 15 Beef staff 480 Jan 14 23:32 ..
具体的には、上記の「.」とコンテンツディレクトリの「..」ファイルです。私はMac端末でbashシェルを使用しています。根を下ろした。
ありがとうございます!
sh-3.2# ls -a -l
total 21496
drwx------+ 15 Beef staff 480 Jan 14 23:32 .
drwxr-xr-x+ 19 Beef staff 608 Jan 15 00:19 ..
-rw-r--r--@ 1 Beef staff 10244 Jan 10 10:36 .DS_Store
-rw-r--r-- 1 Beef staff 0 Dec 25 23:13 .localized
drwxrwxrwx 47 Beef staff 1504 Jan 2 00:01 CSC119 - 1228
drwxrwxrwx 7 Beef staff 224 Jan 1 22:50 Chris 1228
drwxrwxr-x@ 3 Beef staff 96 Aug 25 2010 Contents
drwxrwxrwx@ 5 Beef staff 160 Dec 28 12:09 Lily 1228
drwxrwxrwx 29 Beef staff 928 Jan 3 21:48 Old Dell Laptop
lrwxr-xr-x 1 Beef staff 29 Dec 26 02:51 Relocated Items -> /Users/Shared/Relocated Items
-rwxrwxrwx@ 1 Beef staff 1554944 Jan 8 2019 SanDisk Flashback.pdf
drwxrwxrwx 4 Beef staff 128 Jan 8 2019 SanDiskSecureAccess
-rwxrwxrwx 1 Beef staff 8600360 Nov 4 2016 SanDiskSecureAccessV3.01_win.exe
drwxr-xr-x@ 9 Beef staff 288 Jan 10 11:41 Scanned Docs
drwxrwxrwx 4 Beef staff 128 Dec 19 10:04 google
sh-3.2# rmdir Contents
rmdir: Contents: Directory not empty
sh-3.2# rmdir -p Contents
rmdir: Contents: Directory not empty
このディレクトリをどのように削除しますか?
sh-3.2# ls -a -l
total 21496
drwx------+ 15 Beef staff 480 Jan 14 23:32 .
drwxr-xr-x+ 19 Beef staff 608 Jan 15 00:19 ..
-rw-r--r--@ 1 Beef staff 10244 Jan 10 10:36 .DS_Store
-rw-r--r-- 1 Beef staff 0 Dec 25 23:13 .localized
drwxrwxrwx 47 Beef staff 1504 Jan 2 00:01 CSC119 - 1228
drwxrwxrwx 7 Beef staff 224 Jan 1 22:50 Chris 1228
drwxrwxr-x@ 3 Beef staff 96 Aug 25 2010 Contents
drwxrwxrwx@ 5 Beef staff 160 Dec 28 12:09 Lily 1228
drwxrwxrwx 29 Beef staff 928 Jan 3 21:48 Old Dell Laptop
lrwxr-xr-x 1 Beef staff 29 Dec 26 02:51 Relocated Items -> /Users/Shared/Relocated Items
-rwxrwxrwx@ 1 Beef staff 1554944 Jan 8 2019 SanDisk Flashback.pdf
drwxrwxrwx 4 Beef staff 128 Jan 8 2019 SanDiskSecureAccess
-rwxrwxrwx 1 Beef staff 8600360 Nov 4 2016 SanDiskSecureAccessV3.01_win.exe
drwxr-xr-x@ 9 Beef staff 288 Jan 10 11:41 Scanned Docs
drwxrwxrwx 4 Beef staff 128 Dec 19 10:04 google
sh-3.2# sudo rm -r -f Contents
rm: Contents: Directory not empty
それでも削除されません。
答え1
あなたのディレクトリそうだ空ですが、ls
出力には次のものが表示されます。はいディレクトリのリンク数が2ではなく3であるためです(APFSファイルシステムの空のディレクトリはリンク数が2である必要があります)。
これは、ファイルシステムが一貫していない状態になり、そのfsck
システムで実行する必要があることを意味します。 macOSでは、ディスクユーティリティアプリケーションを介してDisk First Aidを実行してこれを行います。プライマリ起動ディスク(少なくともデフォルトでは「Macintosh HD」と呼ばれる)に問題がある場合は、回復モードでこれを行う必要があります。
もしこれなら私は同じ問題に直面しました、それからおそらく回復モードでディスクに緊急処置を実行する前に、まず最新バージョンのmacOS(2019年3月以降)を使用していることを確認してください。
Cmd+Rコンピュータを再起動し、クリックして回復モードに入ります。回復モードに入ったら、メニューからディスクユーティリティを実行できます。
答え2
ディレクトリエントリは、UNIXが実際に小さなシステムで実行され、コードも小さくなければならなかった1970年代前半のアーティファクトです.
。..
.
だから人々はとという名前のディレクトリへの実際のハードリンクを作成します..
。この誤った考えにより、空のディレクトリへのハードリンク数が2になります。
今日、これは無言の音です。 1988年以降のPOSIX定義は、これらの項目が存在する必要はないということです。彼らの行動は模倣されなければなりません。これは、パス名に.
または..
が表示されるとファイルシステムが正しい方法で動作することを意味します。
最新のファイルシステムにはディレクトリにエントリがなく.
、..
空のディレクトリのハードリンク数は2ではありません。
ZFSはこのように実装されていますが、誤って書かれたプログラムが失敗するのを防ぐために書き込み動作を偽造します。したがって、ZFSはこれらのエントリが存在しない場合でも.
andを提供します。..
readdir()
最新のファイルシステムを使用しているか、過去のファイルシステムを使用しているかにかかわらず、これらのエントリは削除できません。
今リンク数は2つです...
履歴ファイルシステムでは、オペレーティングシステムは通常、リンク数が2より大きいディレクトリをサブディレクトリがあると見なすため、削除できません。
ディレクトリ内のリンクの数が、拡張属性ファイルがリストされた非表示の「属性ディレクトリ」の結果ではない場合、これはファイルシステムのバグの結果であるに違いありません。
オペレーティングシステムがこのプログラムを使用してディレクトリを削除できない場合は、unlink
実行する必要があります。rm
root
fsck
答え3
私の最初の推測は、ファイルが削除されたが実行中のプロセスによって開いたままになったことです。使用sudo lsof | grep Contents
- 名前に「Contents」という単語を含むすべての開いているファイルのPIDを指定する必要があります。以下は、ヘッダーを表示する出力の最初の数行です。
$ sudo lsof | head
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,1 4096 2 /
systemd 1 root rtd DIR 253,1 4096 2 /
...
ディレクトリに何かを開いたままにしているプロセスを削除すると、そのプロセスを削除できます。
答え4
もう一度やり直してください。プロセスの1つがContents
削除されたファイルをディレクトリにまだ開いたままにしている可能性があります。再起動するとファイルが解放され、ディレクトリを削除できます。