単一文字(バックティック)を名前としてディレクトリを移動する

単一文字(バックティック)を名前としてディレクトリを移動する

名前がスペースでのみ構成されているディレクトリを移動するには?

ls -lah
drwx------  4 user1 user1 8.0K Mar 13 14:16 .
drwxr-xr-x  3 root  root    60 Mar 13 13:48 ..
drwx------ 18 user1 user1 4.0K Mar 13 11:18  

これはウイルスの仕事なので元に戻したいです。

修正する:そのキャラが何なのかよく分からない。宇宙のように動かそうとしないでください。

$mv ' ' test
mv: cannot stat ` ': No such file or directory

修正する:これは重複ではありません名前のないファイルの削除、この場合、ディレクトリとファイルは非常に似て動作します。

ベストアンサー1

1つの可能なアプローチは、ディレクトリのinode番号を見つけてmvそのディレクトリに使用することです。どのプラットフォームを使用しているか教えてくれなかったので、利用可能なツールに合わせてこれらの提案を変更する必要があるかもしれません(私はFreeBSDを使用しています)。

ユーティリティを使用してlsinode番号を取得します。-iスイッチはFreeBSDでこれを行います。

$ ls -i
106739 test

testこのソリューションを説明するために作成したばかりの空のディレクトリです。)

これで、このfindユーティリティを使用して、inode番号を持つディレクトリを見つけることができます。

$ find . -inum 106739
./test

そして問題のあるディレクトリに移動します。

$ find . -inum 106739 -exec mv {} fixed \;
find: ./test: No such file or directory

エラーメッセージを心配しないでください。これは、コマンドの実行中にディレクトリインデックスが変更されたために発生するため、findディレクトリ名が次のように変更され、やや混乱しますfixed

$ find . -inum 106739
./fixed

前述のように、正しいスイッチを入手するにはローカルのマニュアルを参照する必要があるかもしれませんが、このアプローチは効果的です。

おすすめ記事