という名前のファイルを作成したかったtest
。誤ってのmkdir test
代わりに実行しますtouch test
。
test
という名前のファイルのディレクトリを変換することは可能test
ですか?
名前の付いたファイルをtest
同じ名前のディレクトリに変換するのはどうですか?
という名前のファイルを作成したかったtest
。誤ってのmkdir test
代わりに実行しますtouch test
。
test
という名前のファイルのディレクトリを変換することは可能test
ですか?
名前の付いたファイルをtest
同じ名前のディレクトリに変換するのはどうですか?
回答:
これは、これまで触れたUnixやLinuxでは不可能です。
いくつかの古いUnixでは、ディレクトリは特別にマークされたファイルですが、それでもファイルです。cat
たとえば、以前はSunOSでディレクトリを読み取ることができました。最新のファイルシステムの多くは、B +ツリーなどのディレクトリ、またはその他のディスク上のデータ構造を持っている場合があります。そのため、ファイルをディレクトリに、またはその逆に変更するには、常に同じ名前の削除と再作成が必要になります。
まったく意味がないので、そのようなコマンドはありません。あなたの質問は、箱を平らな長方形に変換する方法を求めるようなものです。ボックス(ディレクトリ)の内容をどうしますか?長方形は元のボックスにどのように対応しますか?
ファイルとディレクトリは、まったく異なる機能を提供します。ディレクトリは実際には* nixシステムのファイルですが、これはシステムの内部にのみ適用され、ユーザー(ユーザー)が参照するものには適用されません。そのため、ファイルをディレクトリに、またはその逆に変換するには、常にファイルを削除してディレクトリを作成する必要があります。期待できる最善の方法は、同じiノードを使用することですが、この点でもそれほど重要ではありません。
必要なことを行う関数を作成します。(bash
またはシェルを想定した他のBourne / POSIX)
$ dir2file() { rmdir -- "$1" && touch -- "$1";}
$ mkdir adir
$ dir2file adir
$ ls -l adir
-rw-r--r-- 1 xtian xtian 0 2014-03-04 14:59 adir
$
私は意図的に使用rmdir
しますがadir
、ディレクトリではない場合、または空ではない場合(-f
強制的にいいえ)は失敗します。成功したtouch
場合にのみ実行されますrmdir
。
あなたは(あなたのシェルのカスタマイズファイルに関数定義を置くことができる.bashrc
ためbash
)。
--
するの?
--
フラグの終わりをマークするので、たとえそれがで始まっていても、それ以降のファイル名rmdir
をtouch
知っています-
。
なぜこれをしたいのかと思っている人には、このスレッドに従ってください:
ファームウェアのバグが原因でファイルのディレクトリエントリのビットが反転し、OSがファイルではなくフォルダであると認識しているようです。
私は問題のLinksysのルータを持っていませんが、何かが空のフォルダにすべての私の.jpgファイルを変更しました。NTFSディレクトリエントリがフォルダとファイルのどちらであるかを示すビット(または何でも)を反転させる方法がある場合、それについて知りたいと思います。
その2年の長いスレッドの解決策の1つは、ファイルに使用されるフォルダを含むハードドライブがOS / Xを実行しているMacに接続されている場合、Macはそれらを再びファイルとして表示し、 Mac上のフォルダーにコピーできます。私はそれを試すためのMacを持っていないので、誰かがビットを反転する方法を知っているなら...
最初に、ターミナルにアクセスし、実際のフォルダーに変換したいファイルls -al file
を使用して実行します。ファイルとサブディレクトリがリストされている場合、それは「ファイル」が以前は実際のコンテンツを含むフォルダであったことを意味し、続行できます。
実行:
sudo chmod 700 /
または
sudo chmod 700 file
システムを再起動し、ターミナルアクセスを回復して実行します。
sudo chmod 744 /
または
sudo chmod 744 file
覚えておいてください:「ファイル」は、実際のフォルダに戻すファイルに置き換える必要があります。
これはこの問題を解決するためのarbitrary意的な方法ですが、権限の異常を作成しfsck -f
、必要に応じて修正(もちろんマウント解除中)するか、手動で新しい権限を設定できます。
繰り返しになりますが、これは、以前は空ではなかったフォルダーであったファイルを削除する必要がないようにするための実証済みの方法です。
rm -f test && touch test
これを除いて、私は本当に知らない