私は次のことをしようとしています:
printf "Are you sure you want to copy %s (y/n) ? (file bigger than 10 MB) " "$0"
うまくいきますが、次のようにしてファイルの実際のサイズを表示したいと思います。
printf "Are you sure you want to copy %s (y/n) ? (file bigger than 10 MB : %s) " "$0" "ls -l $0 | awk {'print $5'}"
しかし、私はそうしませんでした。私はこれが正しいアプローチではないと思います。
答え1
printf "Are you sure you want to copy %s (y/n) ? (file bigger than 10 MB: %lu) " "$0" \
"$(wc -c < "$0")"
解析された出力はls
信頼できません(そしてその周辺に何があるのか忘れました$(...)
)。
答え2
私はこれがbashやkshのような一種のシェルの形であると仮定します。 Xはファイルです。 (名前にスペースがあると思います)
printf "Are you sure you want to copy %s (y/n) ? (file bigger than 10 MB : %s) " "$x" \
$(ls -ld -- "$x" | awk {'print $5'})
すべきこと。
構文に注意してください。$( some code )
答え3
GNUシステムでは、以下をstat
使用することをお勧めします。
printf "Are you sure you want to copy %s (y/n) ? (file bigger than 10 MB : %s) " "$0" \
"$(exec stat -Lc '%s' -- "$0")"
-L
stat
次のシンボリックリンクを作成します。