これら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
それでも削除されません。
あなたのディレクトリは空に見えますが、ls
出力はisディレクトリのリンク数は2ではなく3であるため、そこにあるファイル(APFSファイルシステムの空のディレクトリのリンク数は2である必要があります)。
これは、ファイルシステムが一貫性のない状態になったことを意味し、おそらくfsck
を実行する必要があります。 macOSでは、これは「ディスクユーティリティ」アプリを介してディスクの応急処置を実行することによって行われます。メインブートディスク(少なくともデフォルトでは「Macintosh HD」と呼ばれることが多い)に問題がある場合は、リカバリモードからこれを行う必要があります。
これが 私が遭遇したのと同じ問題 の場合は、まず可能性が高いであることを最初に確認して解決します最新バージョンのmacOS(2019年3月を過ぎたところ)がディスク上で救急処置をリカバリモードで実行する前。
を押すと回復モードになります Cmd+R マシンを再起動するとすぐに。リカバリモードになると、メニューから「ディスクユーティリティ」を実行する機会が表示されます。
ディレクトリエントリ_.
_および_..
_は、UNIXが小さなマシンで実行され、コードも同様に小さなものである必要があった1970年代初頭のアーティファクトです。
したがって、人々は_.
_および_..
_という名前のディレクトリへの実際のハードリンクを作成しました。この悪い考えにより、空のディレクトリのハードリンク数は2になります。
今日、これはナンセンスであり、1988年以降のPOSIXの定義では、これらのエントリは存在する必要はありません。それらの動作をエミュレートする必要があります。つまり、パス名に_.
_または_..
_が含まれている場合、ファイルシステムは正しい動作をする必要があるだけです。
最近のファイルシステムでは、ディレクトリに_.
_または_..
_エントリがなく、空のディレクトリのハードリンクカウントが2ではありません。
ZFSはこの方法で実装されていますが、不適切に作成されたプログラムが失敗するのを防ぐために、履歴的な振る舞いを装っています。そのため、ZFSは_.
_および_..
_をreaddir()
とともに提供しますが、これらのエントリは存在しません。
現在のファイルシステムと過去のファイルシステムのどちらを使用していても、これらのエントリを削除することはできません。
今あなたのリンク数2 ....
歴史的なファイルシステムでは、OSは通常、リンク数が2を超えるディレクトリにはサブディレクトリがあるため、削除できないと考えています。
ディレクトリ内のリンク数が、リストされている拡張属性ファイルの非表示の「属性ディレクトリ」の結果ではない場合、これはファイルシステムのバグの結果である必要があります。
OSがunlink
の代わりにrm
の代わりにroot
プログラムを使用してそのディレクトリを削除できない場合、fsck
を実行する必要があります。
私の最初の推測では、ファイルは削除されていますが、実行中のプロセスによって開いたままになっています。使用する Sudo lsof | grep 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 /
...
ディレクトリで何かを開いたままにしているプロセスを取り除くと、それを削除できるようになります。
再起動してみてください。削除されたファイルがContents
ディレクトリで開いているプロセスがある可能性があります。再起動するとファイルが解放され、ディレクトリを削除できるようになります。