web-dev-qa-db-ja.com

名前のないファイルが含まれているように見えるディレクトリを削除するにはどうすればよいですか?

ReiserFSファイルシステムで空と思われるディレクトリを削除しようとしていますが、rmがディレクトリが空ではないと文句を言い続けるため、削除できません。

$ rm -rf thedirectory
rm: cannot remove `thedirectory': Directory not empty
$ ls -a thedirectory
         .  ..

問題は、ディレクトリ内に実際に何がisであるかを判断するために私が行うすべてのことは、3つのファイル名前なしがあることを示しているように見えることです。例えば:

$ cd thedirectory
$ ls
ls: cannot access : No such file or directory
ls: cannot access : No such file or directory
ls: cannot access : No such file or directory

$ find .
.
./
./
./
$ ls -N | cat -A
$
$
$

ファイル名を取得できないため、これらのミステリーファイルでstatなどの有用なものを実行できません。ディレクトリ自体のstatは、一見正常な結果をもたらします。

$ stat .
  File: `.'
  Size: 192             Blocks: 0          IO Block: 4096   directory
Device: 807h/2055d      Inode: 825484      Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ diazona)   Gid: ( 1000/ diazona)
Access: 2012-01-27 16:32:45.000000000 -0500
Modify: 2012-01-27 16:31:58.000000000 -0500
Change: 2012-01-27 16:31:58.000000000 -0500

ある種のファイルシステムの破損が関係していると思います。これはおそらく、シャットダウンして、ライブUSBドライブから起動し、reiserfsckで運試しをする必要があることを意味します。しかし、これに対処する簡単な方法はありますか?

3
David Z

Rmに-fフラグを与えると、他のユーザー(rootなど)が所有するファイルを削除しようとしたり、書き込み権限がないなど、何かを実行できない場合でも文句を言わないことを意味します。ディレクトリ。 Sudo rm -rf /path/to/thedirectoryは、間違いなくディレクトリとその中のファイルを削除します。 ls -B thedirectory | cat -veも点灯している可能性があります。

1
Andrew Beals

Iノードを直接削除してみましたか?

$ ls -iN | cat -A
794539 $
$ find . -inum 794539 -exec rm -i {} \;
1

あなたはすべてのファイルを見ることができます

ls -la /name/of/path

...ドットファイルを含む長いリストが表示されます。

ディレクトリと、他のサブディレクトリを含むその中のすべてを削除するには、次を使用します。

rm -rf /name/of/path/*

...ただし、ワイルドカード文字を使用する場合は注意が必要です。これにより、(悪名高い)ステートメントが発生します。

rm -rf *

...これは、実際、「通常のユーザー」にとっても危険です。ワイルドカード文字を使用する必要がある場合は、次のことをお勧めします。

rm -rf /name/of/path

または

rm -rf ./*

...最後に、空にしたいディレクトリの「内側」にいることを前提にドットスラッシュを実行します...それでも、1つのディレクトリを下に移動して、そのディレクトリの外側から削除する必要があります。

0
Avery Payne