Unix & Linux

Linux、FreeBSDおよび他のUn * xのようなオペレーティングシステムのユーザーのためのQ&A

3
プライベートディレクトリの下にパブリックディレクトリを作成できますか?
サーバー上にアクセス許可700の個人フォルダー/ a / bがあります。/a/bのコンテンツを他のユーザーがリストしたくない。/ aの所有者はルートです。 ここで、すべてのユーザーに対してディレクトリ/ a / b / cの完全な権限を開く必要があります。 / a / b / cの許可を777に変更しましたが、他の人にはまだアクセスできません。

4
ハードリンクを使用したcpの動作に驚いた
私はハードリンクの概念を非常によく理解しており、cp---そして最近のPOSIX仕様---のような基本的なツールのマニュアルページを何度も読みました。それでも、私は次の動作を観察して驚いた: $ echo john > john $ cp -l john paul $ echo george > george この時点johnでpaul、同じiノード(およびコンテンツ)を持ちgeorge、両方の点で異なります。今私たちは: $ cp george paul この時点で、私は期待georgeとpaul異なるinode番号が、同じ内容---この期待が満たされたを持っている---しかし、私はまた、予想paul今から別のinode番号を持っているjohnとのために、johnまだコンテンツを持っていますjohn。これは私が驚いた場所です。ファイルをコピー先パスにコピーすると、paulその同じファイル(同じiノード)を、iノードを共有する他のすべてのコピー先パスにインストールする結果にもなりますpaul。cp新しいファイルを作成し、以前は古いファイルで占められていた場所に移動することを考えていましたpaul。代わりに、既存のファイルを開きpaul、切り捨てて、書き込むことですgeorgeのコンテンツを既存のファイルに追加します。したがって、同じiノードを持つ「その他」のファイルは、「それらの」コンテンツを同時に更新します。 わかりました、これは体系的な動作であり、それを期待することがわかったので、必要に応じて回避方法を利用したり、利用したりできます。この動作が文書化されるのを見るはずだったのは、私にとって何が困ったことですか?私がすでに見た文書のどこかに文書化されていない場合、私は驚くでしょう。しかし、どうやら私はそれを見逃したようで、この振る舞いについて議論するソースを見つけることができません。
20 cp  hard-link 

3
正規表現に基づいてdiff / patchの関連するハンクのみを表示します
git log -G<regex> -p指定されたパターンに一致する変更をコードベースの履歴で検索するための素晴らしいツールです。ただし、ほとんど無関係なハンクの海で、diff / patch出力で関連するハンクを見つけるのは圧倒的です。 もちろんgit log、元の文字列/正規表現の出力を検索することは可能ですが、それは視覚的なノイズと多くの無関係な変更の気を散らすものを減らすのにほとんど役立ちません。 を読むとgit log、があります--pickaxe-all。これは、私が望むものとは正反対です。出力を(チェンジセット全体に)広げる一方で、(特定の塊に)制限したいのです。 基本的に、私は差分/パッチを個々のハンクに「インテリジェントに」解析し、各ハンクに対して検索を実行し(変更された行のみを対象とする)、一致しないハンクを破棄し、それらを出力する方法を探していますそうする。 説明したようなツールは存在しますか?マッチした/影響を受けたハンクを取得するためのより良いアプローチはありますか? 私がやったいくつかの初期調査... grepdiff / patchの出力が可能で、コンテキストオプションの値を動的にすると(たとえば、行数ではなく正規表現を使用して)十分な場合があります。しかしgrep、そのように正確に構築されているわけではありません(また、必ずしもその機能を要求しているわけでもありません)。 patchutilsスイートを見つけましたが、当初は自分のニーズに合っているように聞こえました。しかし、そのmanページを読んだ後、ツールは正規表現に基づいて一致するハンクを処理していないようです。(ただし、ハンクのリストを受け入れることができます...) 私はついにsplitpatch.rbに出会いました。これはパッチの解析をうまく処理しているようですが、経由stdinでパッチの読み込みを処理するために大幅に増強する必要があります。
20 git  diff  patch 


4
成長するログファイルの新しいエントリのみを表示する
tail -f x.log このコマンドを使用して、コマンドプロンプトで増加するログファイルを確認します。 実行後にファイルに書き込まれるログ行を表示するだけでtail -f、実行前にファイルに書き込まれたログには関心がありませんtail -f。ただしtail -f、開始時のコマンドは、最後の10行を取得して表示します。 これは、これらのログが新たに生成された(または)古いログである場合に混乱することがありますか? だから、新しいエントリのみを出力するようにtail -fをカスタマイズするにはどうすればよいですか?
20 logs  tail 

3
procがファイルシステムと呼ばれるのはなぜですか?
procファイルシステムは、カーネルはLinuxシステム上で実行中の各プロセスに関する情報を通信することができます。 なぜprocファイルシステムと呼ばれるのですか?のような実際のファイルシステムではありませんext4。これは、実行中のプロセスに関する情報を含むファイルのコレクションです。
20 filesystems  proc 

2
dconfデータベースファイルのバックアップの内容を表示するにはどうすればよいですか?
dconfデータベースが保存されているファイル(~/.config/dconf/userバイナリファイル)のバックアップを作成しましdconfた。次に、バックアップから使用中にいくつかのキーを移動する必要があります。 バックアップしたコンテンツをdconf「所定の場所に」配置せずに表示するにはどうすればよいdconf-editorですか?
20 dconf 

4
ファイルをインプレースで圧縮するにはどうすればよいですか?
ハードディスクの使用率が90%のマシンがあります。500個以上のログファイルを小さな新しいファイルに圧縮したい。ただし、ハードディスクは小さすぎて、元のファイルと圧縮ファイルの両方を保持できません。 したがって、必要なのは、すべてのログファイルを1つずつ新しいファイルに圧縮し、圧縮された元の各ファイルを削除することです。 Linuxでそれを行うにはどうすればよいですか?

2
複数のファイル間の共通行を見つける
私は4つのファイルを持っています file A >TCONS_00000867 >TCONS_00001442 >TCONS_00001447 >TCONS_00001528 >TCONS_00001529 >TCONS_00001668 >TCONS_00001921 file b >TCONS_00001528 >TCONS_00001529 >TCONS_00001668 >TCONS_00001921 >TCONS_00001922 >TCONS_00001924 file c >TCONS_00001529 >TCONS_00001668 >TCONS_00001921 >TCONS_00001922 >TCONS_00001924 >TCONS_00001956 >TCONS_00002048 file d >TCONS_00001922 >TCONS_00001924 >TCONS_00001956 >TCONS_00002048 すべてのファイルには2000行以上が含まれており、最初の列でソートされています。 すべてのファイルで共通の行を見つけたい。私はawkとgrepとcommを試しましたが、動作しませんでした

2
bashの予期しない文字に一致するブラケット式(範囲なし)
Linuxでbashを使用しています。次のifステートメントから成功していますが、これは失敗コードを返すべきではありませんか? if [[ ■ = [⅕⅖⅗] ]] ; then echo yes ; fi 正方形はどの文字とも等しくないため、成功コードを取得する理由がわかりません。 私の場合、二重括弧を保持することが重要です。 このシナリオで範囲を実行する他の方法、または他に何か提案はありますか?
20 bash  locale  test 






弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.