タグ付けされた質問 「hard-link」

ハードリンクは、ファイルシステム上の別のファイルに名前を関連付けるファイルシステムエントリです。

3
他の場所でハードリンクされていないファイルによって使用されているスペースのみを「du」にする方法は?
rsync --link-destスペース節約スナップショットを使用して、実際にどのくらいのスペースを節約したかを知るにはどうすればよいですか?またはより一般的な: ディレクトリ構造以外の場所でハードリンクされていないファイルのみを考慮して、ディレクトリがどのくらいのスペースを使用しているかを調べる方法は?別の質問:そのディレクトリを削除すると、実際にどれだけのスペースが解放されますか?(du -hsうそになるでしょう。ハードリンク自体に必要なスペースが含まれる場合があります)

2
どうしてハードリンクはオリジナルと同じスペースを取るように見えるのですか?
こことこのページの周りのいくつかの良いQ&Aのおかげで、私は今リンクを理解しています。ハードリンクは同じiノードを異なる名前で参照し、コピーは異なる「ノード、異なる名前を持つ。プラスソフトリンクは元のファイル名とパスをiノードとして持っているので、ファイルが移動するとリンクが壊れます。 そこで、私はいくつかのファイル(以下の「saluton_mondo.cpp」)で学んだことをテストし、ハードリンクとソフトリンク、およびコピーを作成しました。 jmcf125@VMUbuntu:~$ ls -lh soft hard copy s*.cpp -rw-rw-r-- 1 jmcf125 jmcf125 205 Aŭg 27 16:10 copy -rw-rw-r-- 2 jmcf125 jmcf125 205 Aŭg 25 13:34 hard -rw-rw-r-- 2 jmcf125 jmcf125 205 Aŭg 25 13:34 saluton_mondo.cpp lrwxrwxrwx 1 jmcf125 jmcf125 17 Aŭg 27 16:09 soft -> saluton_mondo.cpp しかし、ハードリンクのサイズが元のコピーと論理的に同じであることに気づきました。ハードリンクと元のデータが同じiノードを共有し、ファイル名のみが異なる場合、ハードリンクは205バイトではなく、その名前のスペースのみを使用すべきではありませんか?または、元のファイルのサイズがls -lh返されますか?しかし、その後、ファイル名がどのスペースを取るかをどのように知ることができますか?ここでは、ハードリンクにはサイズがありません。それらのファイル名は元のファイル名と一緒に保持されていますか?ハードリンクのファイル名はどこに保存されますか?

6
ハードリンクをインプレースで解除しますか?
私はドットファイルをバージョン管理下に置いており、それらを展開するスクリプトはハードリンクを作成します。またetckeeper、/etcバージョン管理下に置くためにも使用しています。最近、私はこのような警告を受けました: warning: hard-linked files could cause problems with bzr 単純なコピー(cp filename.ext filename.ext)は機能しません。 cp: `filename.ext' and `filename.ext' are the same file ファイルの名前を変更/移動する-ボリューム間を除いて-ハードリンクも壊れません。 だから私の質問は:そのファイルへの他のハードリンクがどこにあるかを実際に知る必要なく、ファイルへのハードリンクを解除する方法はありますか?
13 hard-link 

3
/ devディレクトリ以外のデバイスファイルからハードリンクを作成できないのはなぜですか?
ルートモードで/homeディレクトリにハードリンクを作成したい場合、Linuxは次のエラーメッセージを表示しました。 ln: failed to create hard link ‘my_sdb’ => ‘/dev/sda1’: Invalid cross-device link 上記のエラーメッセージを以下に示します。 # cd /home/user/ # ln /dev/sda1 my_sdb しかし、私は/devディレクトリにハードリンクを作成することしかできず、他のディレクトリでは作成できませんでした。 今、私sdb1は/homeディレクトリ(または他のディレクトリ)の既存のデバイスファイル(など)からハードリンクを作成する方法を知りたいですか?
11 linux  hard-link  ln 

4
編集時にハードリンクが新しいファイルに送られる `cp -al`スナップショット
大規模なフォルダのスナップショットを定期的に取得しようとしています。 私はここを読んだ:http : //www.mikerubel.org/computers/rsync_snapshots/#Incrementalは、ハードリンクをコピーするだけでフォルダのスナップショット をcp -al撮る。 それはすばらしいことですが、問題は、このスナップショットでファイルを変更すると、すべてのスナップショットで変更されることです。代わりに私が望むのは、システムが変更時に新しいファイルを作成し、代わりにそれにリンクすることです。そうすれば、最初のファイルの編集時に各スナップショットが無効になることはありません。 どうすればそれを達成できますか? PS私が試したrsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/が、それは同じ問題があります。

1
表現する方法はありますか: `--link`またはcpの通常のコピー(GNU coreutilsから)にフォールバックしますか?
伝えるためにそこの方法であるcpには--link(つまり、ハードリンクを作成する)が、私は、デバイス間のハードリンクをしようとしていた場合にフォールバック?デバイス間のリンクは不可能でありcp、失敗する可能性があります。 私が質問している理由は、これをaで使用したいためGNUmakefile、複雑で長文のコマンドライン(または関数について)よりも、読みやすいコマンドラインを使用したいためです。 問題は、GNU coreutils(7.4および8.13)に対するものです。 注:現在、回避策は(GNU makeレシピ構文)のようになります。 cp -fl $^ $@ || cp -f $^ $@ もちろん、これにより、デバイス間のリンクの場合は偽のエラーメッセージが表示されますが、2番目のcp呼び出しは成功します。また、これは展開されます(結局のところ、ソースフォームは読みやすいように見えます)。

2
`ln -d`が成功するファイルシステムはありますか?
lnのマンページから: -d, -F, --directory allow the superuser to attempt to hard link directories (note: will probably fail due to system restrictions, even for the superuser) これを実際に許可するファイルシステムドライバーはありますmount --bind <src> <dest>か、それとも唯一のオプションですか?または、この種の動作は、ファイルシステム固有のドライバーに到達する前にカーネルによってブロックされていますか? 注:私は実際にはどのマシンでもこれを実行するつもりはありません。

2
/ binにシンボリックリンクとハードリンクが混在しているのはなぜですか?
私はシンボリックリンクとハードリンクの技術的な違いを理解しています。これは実際の使用に関する質問です。特に、両方が一見似たような条件で使用される理由を知りたいと思い/binます。ディレクトリです。 これが私のシステムでのリストのフラグメントです: ~$ ls -lai /bin total 10508 32770 drwxr-xr-x 2 root root 4096 Jun 14 11:47 . 2 drwxr-xr-x 28 root root 4096 Sep 6 13:15 .. 119 -rwxr-xr-x 1 root root 959120 Mar 28 22:02 bash 2820 -rwxr-xr-x 3 root root 31112 Dec 15 2011 bunzip2 127 -rwxr-xr-x …

4
アーカイブ用ファイルシステム
ファイルシステムに複雑な読み取り専用データがいくつかあります。これには、svnリポジトリの特定のリビジョンの何千ものスナップショットと、回帰テストの出力が含まれています。スナップショット間で同一のファイルは、ハードリンクを使用してすでに重複排除されています。この方法では、ストレージ容量を大きくする必要はありませんが、それでも多くのiノードが消費されるため、fsckがメインファイルシステムにとって非常に長くなります。 これらのデータを別のファイルシステムに移動して、メインファイルシステムにあまり影響を与えないようにしたいと思います。提案はありますか?Squashfsは可能な選択肢のようですが、ハードリンクを効率的に処理できるかどうかを確認する必要があります。

1
ファイルシステムを走査せずにファイルのすべてのハードリンクを見つける
私が見ているこのページでは、iノードが持っているリンクカウンタをポイントこのiノードへ:どのように多くのファイル(「ディレクトリエントリ」を読んで)知っています。ファイルシステム全体を走査せずに、どのディレクトリにそのようなエントリが含まれているかを知る方法はありますか?この情報はどこかに保存されていますか? struct inode { kdev_t i_dev; unsigned long i_ino; umode_t i_mode; nlink_t i_nlink; uid_t i_uid; gid_t i_gid; … };

1
CentOS 6とCentOS 7で異なるハードリンクアクセス許可の動作
CentOS 7でハードリンクを作成しようとすると、アクセス許可エラーが発生します。CentOS 6で設定したのと同じ権限があれば、エラーは発生しません。問題はグループの権限に集中しています。どのOSのバージョンが正しいのか、どちらが間違っているのかわかりません。 何が起こっているのかを説明しましょう。現在の作業ディレクトリには、ソースと宛先の2つのディレクトリがあります。最初、宛先は空です。ソースにはテキストファイルが含まれています。 [root@tc-dlx-nba cwd]# ls -l total 0 drwxrwxrwx. 2 root root 6 Jun 12 14:33 destination drwxrwxrwx. 2 root root 21 Jun 12 14:33 source [root@tc-dlx-nba cwd]# ls -l destination/ total 0 [root@tc-dlx-nba cwd]# ls -l source/ total 4 -rw-r--r--. 1 root root 8 Jun 12 14:20 …

5
`ls -l`を使用してディレクトリ内のサブディレクトリの数を確認できますか?
を使用してディレクトリを表示する場合ls -l、リンクの数(出力の2番目のフィールド)は少なくとも2つです。1つはディレクトリ名用、もう1つは. $ mkdir foo $ ls -l total 2 drwxr-xr-x 2 user wheel 512 4 oct 14:02 foo 2を超えるリンクの数がこのディレクトリ(..リンク)のサブディレクトリの数に対応すると常に想定するのは安全ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.