タグ付けされた質問 「coreutils」

GNUコアユーティリティは、ls、cp、mv、rmなどのツールを含む、POSIXシステムのコアコマンドラインツールのGNUプロジェクトの実装です。

3
なぜ 'ls'はアイテムを一重引用符でスペースで突然ラップするのですか?
私のマシンの1つ(Debian Sidを実行している)でls、スペースを含むファイル名を入力するたびに、単一引用符で囲まれていることに気付きました。 私はすぐにエイリアスをチェックしましたが、それらが無傷であることがわかりました。 wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt wyatt@debian630:~/testdir$ alias alias ls='ls --color=auto' alias wget='wget --content-disposition' wyatt@debian630:~/testdir$ (画像) 名前に単一引用符を含むファイルを使用した別のテスト(jimmijによる要求にも応答): wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt 'thishasasinglequotehere'\''.txt' wyatt@debian630:~/testdir$ touch "'test 1.txt'" wyatt@debian630:~/testdir$ ls ''\''test 1.txt'\''' test1.txt 'test 1.txt' 'thishasasinglequotehere'\''.txt' (画像) 新しいcoreutils-8.26の出力で更新します(明らかに紛らわしくないですが、デフォルトではいらいらします)。このプリントアウトをしてくれたPádraigBradyに感謝します。 $ ls "'test 1.txt'" test1.txt 'test 1.txt' "thishasasinglequotehere'.txt" $ ls -N …

13
シェルスクリプトの正しいロック?
シェルスクリプトの1つのインスタンスのみが同時に実行されていることを確認する必要がある場合があります。 たとえば、それ自体でロックを提供しないcrondを介して実行されるcronジョブ(たとえば、デフォルトのSolaris crond)。 ロックを実装する一般的なパターンは、次のようなコードです。 #!/bin/sh LOCK=/var/tmp/mylock if [ -f $LOCK ]; then # 'test' -> race begin echo Job is already running\! exit 6 fi touch $LOCK # 'set' -> race end # do some work rm $LOCK もちろん、このようなコードには競合状態があります。2つのインスタンスの実行が両方とも行3の後、$LOCKファイルに触れることができる前に進むことができる時間枠があります。 cronジョブの場合、2つの呼び出しの間隔が数分あるため、これは通常問題になりません。 しかし、ロックファイルがNFSサーバー上にある場合など、問題が発生する可能性があります。その場合、いくつかのcronジョブが行3でブロックしてキューに入れることができます。NFSサーバーが再びアクティブになった場合、並列実行ジョブの雷の群れがあります。 Webで検索すると、この問題の良い解決策のように思えるツールロックランが見つかりました。これを使用して、次のようなロックが必要なスクリプトを実行します。 $ lockrun --lockfile=/var/tmp/mylock myscript.sh これをラッパーに入れるか、crontabから使用できます。 これは、使用lockf()可能な場合(POSIX)をバックにフォールflock()(BSD)。またlockf()、NFSを介したサポートは比較的広く普及しているはずです。 に代わるものはありlockrunますか? 他のcronデーモンはどうですか?適切な方法でロックをサポートする一般的なcrondはありますか?Vixie …

3
「はい」はどのようにしてファイルにこれほど迅速に書き込みますか?
例を挙げましょう: $ timeout 1 yes "GNU" > file1 $ wc -l file1 11504640 file1 $ for ((sec0=`date +%S`;sec<=$(($sec0+5));sec=`date +%S`)); do echo "GNU" >> file2; done $ wc -l file2 1953 file2 ここでは、コマンドyesが115046401 1953秒で行を書き込むのに対してfor、bash とを使用して5秒で行のみを書き込むことができますecho。 コメントで示唆されているように、それをより効率的にするためのさまざまなトリックがありますが、どれも速度に匹敵するものはありませんyes: $ ( while :; do echo "GNU" >> file3; done) & pid=$! ; sleep 1 …
58 bash  coreutils  write  yes 

2
cp -L対cp -H
問題 cp -Hまたはcp -Lでファイルをコピーすると、同じ結果が得られます。 $ ls -l fileA fileA -> fileB $ cp fileA somewhere/ -H $ ls -l somewhere/ fileA # fileA is a copy of fileB, only renamed, with same properties! ここでのこの回答では、両方のオプションを、と組み合わせて使用​​される同様のUNLESSとして説明します-R。私ではありません。ソフトリンクされたハードリンクファイルは、ソースでポイントするファイルの名前が変更されたコピーになります。 質問: cp -Hand の適切な使用法は何cp -Lですか?これは予想される動作ですか? 私の解決しようとする試み: man cp両方のオプションでまったく同じことを教えてくれますが、info cp「」の言葉遣いはそれをさらに混乱させます。多分これを少し分解するのを手伝うことができます: -H コマンドライン引数がシンボリックリンクを指定する場合、シンボリックリンク自体ではなく、それが指すファイルをコピーします。ただし、再帰トラバーサルを介して検出されたシンボリックリンクをコピー(その性質を保持)します。 これは私には矛盾のように聞こえます:シンボリックリンクの性質 «は、それがどこかを指しているということだと思います… -L, --dereference シンボリックリンクからコピーする場合は、シンボリックリンクに従ってください。このオプションでcpは、シンボリックリンクを作成できません。たとえば、ソースツリーの(通常のファイルへの)シンボリックリンクは、宛先ツリーの通常のファイルにコピーされます。 …

3
私のシステムの/ binにある `[`プログラムは何ですか?
私は最近、Fedoraの/binフォルダーを参照していましたが、という名前のバイナリに気付きました[。インターネットで詳細を検索しようとしましたが、有用なものが見つかりませんでした。これを実行してstraceも、詳細な検査に役立つものは何も生成されないようです。 それは何ですか?心配する必要がありますか?システムの侵害の結果でしょうか?実行すべきですか?パッケージに属しますか?
32 fedora  gnu  coreutils 


2
ln -sが単一の引数を受け入れる理由
> cd /tmp > ln -s foo > ls -alhF /tmp lrwxrwxrwx 1 user user 3 Jul 29 14:00 foo -> foo これはバグlnですか、それともファイルをシンボリックリンクするユースケースはありますか? これはcoreutils 8.21-1ubuntu5.1です。
27 symlink  coreutils  ln 

3
GNU“ install” -dフラグ—どのように機能しますか?
ディレクトリをコピーするためのメイクファイルルールを作成し、その構造を維持しようとしています。メイクファイル内の他のすべてのルールはを使用するためinstall、一貫性を保ちたいと考えました。 マンページには、次のように書かれています。 あらすじ install [OPTION]... [-T] SOURCE DEST install [OPTION]... SOURCE... DIRECTORY install [OPTION]... -t DIRECTORY SOURCE... install [OPTION]... -d DIRECTORY... -d, --directory treat all arguments as directory names; create all components of the specified directories OK、それは私が必要なもののように聞こえます...しかし、フラグは意味をなしません。インストール先のディレクトリをどのように指定しますか? ローカルハードディスクに任意のディレクトリ構造を作成して、基本的なテストを実行しました。 ~>tree test test ├── a │ └── b │ └── c │ …
26 coreutils 

4
GNU cpおよびmvの-Tオプションの付加価値は何ですか?
一部のGNU Coreutilsコマンドに-T/--no-target-directoryオプションがあるのはなぜですか?.従来のUnixディレクトリ階層の(自己ドット)のセマンティクスを使用して、それが行うすべてのことを達成できるようです。 考慮: cp -rT /this/source dir この-Tオプションは、コピーがdir/sourceサブディレクトリを作成しないようにします。むしろ/this/sourceと識別されdir、コンテンツはそれに応じてツリー間でマッピングされます。そのため、たとえばにではなく、に/this/source/foo.c進みます。dir/foo.cdir/source/foo.c ただし、次の-Tオプションを使用しなくても簡単に実現できます。 cp -r /this/source/. dir # Probably worked fine since dawn of Unix? 意味的には、末尾のドットコンポーネントはの子としてコピーされますdirが、もちろん「子」は既に存在するため(作成する必要はありません)、実際はdirそれ自体なので、効果はで/this/path識別されdirます。 現在のディレクトリがターゲットの場合は正常に機能します。 cp -r /this/tree/node/. . # node's children go to current dir あなたが行うことができます何かがあるだけで-Tその存在を合理化することができ、それは?(ドットディレクトリを実装していないオペレーティングシステムのサポートに加えて、ドキュメントに記載されていない理論的根拠。) 上記のドットトリックは、GNU Infoドキュメントで言及されているのと同じ競合状態を解決しません-Tか?
26 cp  coreutils 

4
`touch`の-fオプションの使用は何ですか?
からman touch: -f (ignored) しかし、私は無視することの意味がわかりません。 私は次のことを試しました: $ ls -l file -rw-rw-r-- 1 pandya pandya 0 Mar 20 16:17 file $ touch -f file $ ls -l file -rw-rw-r-- 1 pandya pandya 0 Mar 20 16:18 file そして、それにもかかわらず、タイムスタンプを変更することに気づきました -f。 だから、私は何の-f略か、それが何をするのか知りたいです。
23 coreutils  touch 


3
dateコマンドの「1か月前」オプションはどのように機能しますか?
これが現在の日付内で過去の日付を取得するのか、それとも30日または31日しかかからないのかはわかりません。 例えば 現在の日付がの場合March 28th、1か月前はでなければなりませんがFebruary 28th、そうなったらどうなりますMarch 30thか? シナリオ 私は毎日いくつかのファイルをバックアップしたいのですが、スクリプトは現在の日付内でこのファイルをの$(date +%Y%m%d)ような形式で保存20150603_bckp.tar.gzし、次の月が来ると、1番目と15番目のファイルを除く1ヶ月前にすべてのファイルを削除します私の状態: past_month = $(date -d "-1 month" +%Y%m%d) day = $(date +%d) if [ "$day" != 01 ] && [ "$day" != 15 ] then rm /path/of/files/${past_month}_bckp.tar.gz echo "Depuration done" else echo "Keep file" fi しかし、知りたいのは、日付が30日、31日、または過去2月の例の場合はどうなるかということです。それらのファイルを保持しますか?または1日目のファイルを削除しますか? 31日目に浄化が実行されるので、過去1か月に30日しかなかった場合、1日目のファイルは削除されますか? ほのめかしたことを願っています。
22 date  coreutils 

6
LinuxでGNU coreutilsを置き換えるオプションはありますか?
私は自分のLinuxシステムでGNU Coreutilsの使用を中止することを考えてきましたが、正直なところ、他の多くのGNUコンポーネントとは異なり、(Linuxで)代替手段を考えることはできません。GNU coreutilsにはどのような代替手段がありますか?複数のパッケージが必要ですか?プロジェクトへのリンクは必須です。ディストリビューションパッケージに名前を付けるためのボーナスポイントです。 また、Linuxで動作することがわかっていて、指示を参照できる場合を除き、提案しないでください。私はすぐにカーネルを切り替えることを疑っています./configure; make; make install。確かにCをハッキングするつもりはありません。 警告:ディストリビューションがcoreutilsを使用している場合、それらを削除するとディストリビューションの機能が損なわれる可能性があります。ただし$PATH、ほとんどのスクリプトは絶対パスを使用する必要があるため、これらを最初に配置しても問題はありません。

3
coreutilsのソートがPythonより遅いのはなぜですか?
Pythonのソート機能の速度をテストするために、次のスクリプトを作成しました。 from sys import stdin, stdout lines = list(stdin) lines.sort() stdout.writelines(lines) 次に、これsortを1,000万行を含むファイルのcoreutils コマンドと比較しました。 $ time python sort.py <numbers.txt >s1.txt real 0m16.707s user 0m16.288s sys 0m0.420s $ time sort <numbers.txt >s2.txt real 0m45.141s user 2m28.304s sys 0m0.380s 組み込みコマンドは4つのCPUをすべて使用しましたが(Pythonは1つしか使用しませんでした)、実行に約3倍の時間がかかりました!何が得られますか? Ubuntu 12.04.5(32ビット)、Python 2.7.3、およびsort8.13を使用しています

5
/ usr / bin / ptx:ユースケースを1つまたは2つ提供できますか?
coreutilsに含まれているファイルのリストを調べていたところ、ptx以外のすべてのコマンドを個人的に使用する方法の例を思いつくことができました。ptxを使用した1つまたは2つ(または3つ)の例を挙げることができますか?ユースケースが多ければ多いほど良いです。 $ apropos ptx ptx(1) - produce a permuted index of file contents

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