幸福度アップの Linux コマンド Tips

こんにちは、鈴木です。

 

社内情報共有ツール」での「社内情報共有ツールを運用してみたら意外と一般公開しても OK な情報がわんさか!」の件です。今回はとても奥が深い Linux コマンドに関するナレッジをご紹介します。

 

scp -C で圧縮転送

scp はサーバ間のファイル転送をするときに良く使うコマンドですが、「圧縮していないログファイルを scp したらなかなか終わらない・・」なんて経験をお持ちの方は多いのではないでしょうか。

そんなときは scp に -C オプションを付けてみてください。データが圧縮されるので転送時間を短くすることができます。scp の -C オプションを知らなかったときは、

のように圧縮→転送→圧縮ファイルを削除、としていましたが、-C オプションを使うと以下のように 1 行で実現することができます。

圧縮したファイルを消し忘れる心配も無いところも嬉しいですね。

 

tar -C でディレクトリを移動してから処理をする

tar でアーカイブファイルを展開するときに、以下のように cd で展開先ディレクトリに移動してから tar で展開する、ということをしていませんか?

実は tar の -C オプションを使用すると、次のように書くことができます。

-C オプションを使うと、指定したディレクトリに移動してから処理が行われます。

 

xargs -r で入力が無ければ何もしない

xargs というコマンドをご存知でしょうか?

xargs は標準入力を 1 行ずつ読み込み、それを引数にコマンドを実行してくれます(引数の長さに応じてコマンドが 1 回以上実行されます)。

例えば以下のようにすると拡張子が .sh のファイルに実行権限を付けることができます。

ところで xargs を使うときに良くあることとして、入力が 1 行も無い場合にコマンドがエラーになってしまう場合があります。

上記コマンドを実行したときに、拡張子が .sh であるファイルが一つも無いと、次のようになります。

xargs に -r オプション(--no-run-if-empty オプション)をつけておくと、xargs への入力が空の場合は何も実行しないようになります。つまり、上記のようなエラーを回避することができます。

 

リダイレクトするには sudo しなければ・・

ディスクキャッシュを削除しよう!

おっと、一般ユーザでは書き込み権限は無いですもんね。sudo しないと・・、

むむむ、これだと echo コマンドが sudo で実行されただけだから、、、sudo を付けるのはこっちか!

これで大丈夫なのかな・・ちょっと ls してみよう。。

おっと!「sudo」というファイルができてるよ!

という経験はお持ちでしょうか?

以下のように tee を使うとやりたいことは実現できます。

 

まとめ

他の人のナレッジを教えてもらうと、「あっこんな使い方があったんだ!」という発見があって面白いですね。

 

Comments are closed, but you can leave a trackback: Trackback URL.