時にはディレクトリのように感じられることもあり、時には通常のファイルのように感じられることもあります。

時にはディレクトリのように感じられることもあり、時には通常のファイルのように感じられることもあります。

クリーンアップの目的のために、特定のファイルシステムオブジェクトはほとんどの場合ファイルとして表示され、時にはディレクトリとして表示されることを望みます。

基本的なアイデアは、通常、、、、/に対してcpオブジェクトmvが別々のファイルとして表示されるようにしたいということですfind。 、、、などの他のアプリケーションの場合は、ディレクトリとして表示したいです。誰かがこれを行うメカニズムを提案できますか?updatedblocatevlcrythmboxfehokular

これを説明するために例を挙げましょう。

私が念頭に置いているオブジェクトの名前を_my_books_on_m4_programming.arch_とします。移動/コピーまたは検索/検索の目的で、オブジェクトはファイルのように見えますが、オブジェクトから本を読むにはディレクトリのように見えます。つまり、コマンドの場合okular my_books_on_m4_programming.arch/beginner/m4_for_dummies.pdf

私は2つの半分の可能な解決策を考えてみましたが、どちらかについては助けが必要です。

  • 1つ目は、ファイルシステムの特殊属性を使用するようにLinuxを変更することでした。そのプロパティが設定されている場合は、環境(たとえば)を見つけますSPECIAL_OBJECT_IS_FILE。設定されている場合はファイルとして処理します。設定しない場合はディレクトリとして扱います。このアプローチの問題は、システム全体を変更せずにそれを実装する方法がわからないことです。

  • 2番目の技術は、ファイルをいくつかのディレクトリにマウントされたアーカイブ(tar、zip、rarなど)に保存することです。オブジェクトをアーカイブとして処理するにはネイティブアーカイブを参照し、オブジェクトをディレクトリとして処理するにはマウントポイントを参照してください。可能ですか?

  • ハーフテクニックは2番目のテクニックの単なるバリエーションであり、アーカイブをインストールする代わりにそれへのリンクを作成しました。そのようなことは可能ですか?

似たようなことをしたい人が誰もいないと信じられないので、何か方法があると思います。提案?

答え1

場合によっては、これらのファイルが別々のファイルとして表示されることを望まない理由はわかりません。最終的にmy_books_on_m4_programming.archディレクトリの場合はを使用してコピーし、cp -rpを使用して検索できますlocate

ヒューズ(ユーザースペースのファイルシステム)は、軽量ファイルシステムを実装する方法を提供し、既存のファイルの代替ビューを提供する複数のFUSEファイルシステムがあります。同じファイル(たとえば、同じファイルパス)がディレクトリと一般ファイルの両方で表示されると、多くのアプリケーションが混乱する可能性がありますが、同じファイルをある場所ではディレクトリとして表示し、ある場所では一般ファイルとして表示する既存のソリューションがたくさんあります。あります。 location ファイルの別の場所です。

特に、AVFSアーカイブとリモートファイルがディレクトリとして表示されるようにします。私はこれがあなたが探しているものに最も近い既存のものだと思います。

$ mountavfs
$ ls my_books_on_m4_programming* 
my_books_on_m4_programming.tgz
$ tar tzf my_books_on_m4_programming.tgz 
beginner/m4_for_dummies.pdf
$ ls ~/.avfs$PWD/my_books_on_m4_programming.tgz\#/
beginner
$ okular ~/.avfs$PWD/my_books_on_m4_programming.tgz\#/beginner/m4_for_dummies.pdf

答え2

ループバックファイルシステムの使用を検討できます。

まず、ファイルシステムを含むファイルを作成します。

dd if=/dev/zero of=~/myfilesys bs=8K count=256

これにより、空の2GBファイルが作成されます。次に、ループバックデバイスに接続する必要があります。

losetup /dev/loop0 ~/myfilesys

これでファイルシステムを作成します。

mkfs -t ext3 /dev/loop0

最後に、ファイルシステムをマウントします。

mkdir ~/myfilesys.d
mount /dev/loop0 ~/myfilesys.d

完了したら:

umount /dev/loop0
losetup -d /dev/loop0

後でもう一度使用してください。

losetup /dev/loop0 ~/myfilesys
mount /dev/loop0 /mnt/myfilesys.d

losetup(はい、ステップとステップを組み合わせることができることはわかっていますが、mount説明のためにステップを別々に維持すると、進行状況をより明確に表示できます。)

現在、この~/myfilesysファイルはすべてのコマンドのファイルと同じように見え、機能しますが、インストールされたら~/myfilesys.d

関連情報