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

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

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

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

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

答え2

あなたはそれを使用することができます:

mv ' ' <where you want to move>

答え3

次の方法で名前を把握する必要があります。

ls | od -c

もう一度試してみてくださいmv ? somewhere(名前が1文字の場合)、mv ?? somewhere(2文字がある場合)...上記のod(1)コマンドは、長さを話すか、ls -b出力で知っておく必要があります。

名前が実際に「」(空白)であればmv ' ' somewhere大丈夫です。

答え4

空白文字が解析されないようにするには、ドル記号を使用します。

mv $' ' /path/to/folder

それ以外の場合はパラメータとして処理されません。

関連情報