問題タブ [hardlink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
279 参照

linux - Linux のハードリンク

のサイズhardlinkLinux?のサイズになりinodeますか?2つ持っていたら?

説明をよろしくお願いします。試してみましgoogleたが、何も見つかりませんでした

0 投票する
0 に答える
1240 参照

c++ - CreateHardLinkおよびCreateSymbolicLinkWin32関数

バックアップテスト用のダミーファイルシステムを作成するプロジェクトを完了しており、構造内にハードリンクとソフトリンクを作成する方法を開発する必要があります。

windows.hのCreateHardLink関数とCreateSymbolicLink関数は、現在の作業ディレクトリに基づいてファイルの場所と名前を受け取ります。

ソースコードはディレクトリを変更しますが、これら2つの関数は正常に実行されません。

ここで、hltargは、既存のファイル名をsymの末尾に連結します。

作業ディレクトリをターゲットディレクトリに移動したため、これらの文字列にはフルパスは含まれていませんが、ターゲットファイル名のみが含まれています。

現在のディレクトリを変更するのではなく、別のルートを取るためのアドバイスはありますか?

必要なファイルパスが提供されますが、ファイルパスへのハード参照を作成できないように、アプリケーションはポータブルである必要があります。

0 投票する
1 に答える
386 参照

wix - WiX でハードリンクを作成する方法

カスタム アクションを作成せずに WiX でハードリンクを作成することは可能ですか? 問題を説明しているこのスレッドを見つけましたが、答えはありません。ハードリンクを作成したい理由は、同じ前提条件を共有する 4 つの異なるアプリケーションがあり、これらがサーバー上の使用可能なすべてのスペースを占有しているためです。それらを何らかの方法で共有するとよいでしょう。

WiX3.0を使っています

0 投票する
1 に答える
715 参照

linux - MEM_SHARED、mmap、およびハードリンク

共有メモリの鍵はファイル名なのかiノードなのか疑問に思っています。

.lastという名前のファイルがあります。これは、YYYYMMDDHHMMSSという名前のファイルへのハードリンクです。

ディレクトリは次のようになります。

.lastは、20110101143000へのハードリンクです。

しばらくして、新しいファイルが作成されます

次に、.lastを削除し、新しいファイルを参照するように再作成します。

これらの更新中に継続的に実行されている当社のソフトウェアは、MAP_SHAREDを使用して.lastファイルをmmapします。ファイルの処理が完了すると、ソフトウェアはファイルのマップを解除するのではなく、数分間キャッシュする場合があります。物理サーバーでは、ソフトウェアのインスタンスが12〜24個同時に実行されています。多くの場合、異なるインスタンスがほぼ同時に同じファイルをmmapします。私の質問は:

Linuxはファイル名を使用して共有メモリにキー入力しますか、それともiノードを使用しますか?

このシナリオを考えると:

  1. proc A mmaps .lastであり、マップを解除しません
  2. 新しいファイルが書き込まれ、.lastが削除され、新しい.lastが作成されて新しいファイルがリンクされます
  3. proc Bは新しい.lastをmmapし、マップを解除しません

Linuxがiノードを使用した場合、proc AとBは、異なるファイルにマップされた異なるメモリブロックを認識します。これは私たちが望んでいることです。Linuxがファイル名を使用する場合、AとBの両方が新しいファイルにマップされた同じメモリブロックを参照します。Bは問題ありませんが、シャードブロックのメモリが変更されるとAがクラッシュします。

誰もがそれが実際にどのように機能するか知っていますか?私はテストするつもりですが、それが名前ベースであることが判明した場合、誰かがトリックを知らない限り、私は失敗します。

ありがとう!

0 投票する
2 に答える
1069 参照

windows - Windowsでハードリンクを解決せずにプログラムでフォルダをコピーする(Win32 API)

ハードリンクを解決せずにフォルダ全体をコピーしたい

例:

fsutil hardlink create(またはを使用して作成されたHardLink3 mklink

このフォルダをコピーしたい

Folder2\HardLink3をFile3を指すハードリンクとして保持します

このセマンティクスを使用してフォルダー全体をコピーするWin32API呼び出しはありますか、またはファイルごとにCopyFile / CreateHardLinkを実行する必要がある場合、特定のファイルがハードリンクであるかどうかを確認するAPI呼び出しは何ですか?

0 投票する
1 に答える
145 参照

windows - 目に見えないハードリンク

ログファイルの内容を表示する小さなアプリケーションがありますが、読みやすくするために多少変形しています。ログ ファイルは時々書き換えられ、Windows ファイル システムのセマンティクスでは開いているファイルの削除が禁止されているため、ファイルへのハードリンクを作成します。

明らかに、これは元のファイルと同じファイル システムで行う必要があります。現在、私は同じディレクトリにハードディスクを作成しています。これは、この要件を満たすと合理的に想定できると考えています。その結果、ユーザーがファイルを開くためにクリックしたばかりのディレクトリ リストに一時ファイルが表示されます。これは見苦しいものです。

表示されないようにハードリンクを作成する方法はありますか (プログラムを使用している顧客はディレクトリ ツリーに複数のジャンクションを持っているため、特定のディレクトリが同じファイル システム上にあるとは想定できません)、またはありますか?別のプロセスが削除して再書き込みしようとしている可能性のあるファイルを読み取るためのより良い方法 (たとえば、他のプロセスのアクセスを通過させる前にアクセスをキャッチしてファイルを閉じることによる)。変形?

0 投票する
3 に答える
251 参照

c# - ハード リンクを使用して連結ファイルをシミュレートしますか?

サードパーティの C++/C# プラグインに 1 つのファイルとして読み取らせたい、1 つのファイルの複数の部分があります。基本的に、プラグイン ファイル リーダーが 1 つのファイル パーツの最後に到達したら、次のファイル パーツに進みたいと思います。

(興味のある方は、プラグインは Aforge.Net FFMpeg で、VOB ファイルをインポートしようとしています)

プラグインを再プログラムするのはかなりの作業のようです。別の解決策として、ファイルの一部を連結ファイルにコピーする方法がありますが、何 GB ものデータを扱っているため、これでは時間がかかります。

ファイル システムのハード リンクを使用して複数のファイルを指すことは可能ですか? または、連結されたファイルを「偽造」する他の方法はありますか? コマンドラインFFMpegを使用すると、「タイプ」を使用して連結ファイルをライブストリームできますが、このプラグインを使用してC#でこれを実現する方法がわかりません。

私はWindows 7を使用しています。

0 投票する
3 に答える
2065 参照

java - Javaで「mklink/H」(ハードリンク)を実現するにはどうすればよいですか?

ファイル「C:\ xxx.log」から「C:\ mklink\xxx.log」へのハードリンクを作成したい。cmdではもちろん機能しますが、このユースケース用のソフトウェアを作成したいと思います。

  • したがって、既存のファイルを見つける必要があります
  • 次に、ハードリンクを作成します
  • 次に、古いファイルを削除します

実装を始めましたが、ファイルの作成方法を知っています。グーグルで私はJavaのmklink\Hについて何も見つけませんでした。

0 投票する
2 に答える
892 参照

bash - Bash: 宛先が同じボリューム内にある場合はハードリンクを作成し、そうでない場合はコピーします

私のbashスクリプトは、いくつかのファイルのコピーをいくつかの複数のディレクトリに作成します。

スペースを節約して速度を最大化するために、コピーではなくハードリンクを作成することをお勧めします。

ただし、スクリプトは別のコンピューターで実行され、宛先ディレクトリが元のボリュームとは異なるボリュームに存在する場合があります。このような場合、ハードリンクを作成できず、ファイルをコピーするだけで済みます。

元のディレクトリと宛先のディレクトリが同じボリュームに存在するかどうかを確認し、それに応じてハード リンクまたはコピーを行うにはどうすればよいですか?

0 投票する
3 に答える
4118 参照

ubuntu - zipアーカイブ内でハードリンクは可能ですか?

異なるパスにある2つの同一ファイルを含むzipアーカイブを作成しています。zipアーカイブ形式は、Unixのハードリンクの概念に似たものをサポートしていますか?これは、ファイルを1回だけ保存する機能(スペースを節約する機能)を意味しますが、そのデータBLOBをzipアーカイブ内の2つの異なるパスにインデックス付けします。

ファイル形式がこれをサポートしている場合、Ubuntuの無料ツールを使用してそのようなアーカイブを作成するにはどうすればよいですか?