質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

1回答

873閲覧

1MB以下のフォルダを削除するシェル

ponjiro

総合スコア8

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

1クリップ

投稿2017/09/22 23:19

シェルの初心者です。

###実現したいこと
容量が1MB以下のフォルダを削除するシェルを作りたいと考えてます。

####容量とフォルダの状態
$ du -h Dir_*

1.3M Dir_A 503K Dir_B 118K Dir_C 219K Dir_D

###シェルの実行結果

Dir_A (容量が1MB以上の[Dir_A]が残り、1MB以下のDir_B、Dir_C、Dir_Dが削除される)

以上でございます。

どのようにシェルを書けば1MB以上のフォルダだけ残し、それ以外が削除できるかご教授いただけませんでしょうか。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

du -hでは単位が可変となるので、du -k等で単位を揃えて確認するとよいかと思います。
判定処理については下記のような形でいかがでしょうか。

bash

1for i in `ls` 2do 3 if [ -d "$i" ]; then 4 size=`du -ks "$i" | awk '{print $1}'` 5 if [ $size -le 1024 ]; then 6 echo "$i($size) is less than or equal to 1MiB." 7 else 8 echo "$i($size) is grater than 1MiB." 9 fi 10 fi 11done

投稿2017/09/22 23:50

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ponjiro

2017/09/22 23:57

suyama様 瞬く間にご回答頂きありがとうございます! 意図したとおりに動作しました! 感謝致します! ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問