Tôi muốn nhận kích thước tệp thành biến? Làm thế nào để làm điều đó?Kích thước tệp vỏ linux
ls -l | grep testing.txt | cut -f6 -d' '
cho kích thước nhưng cách lưu trữ trong biến trình bao?
Tôi muốn nhận kích thước tệp thành biến? Làm thế nào để làm điều đó?Kích thước tệp vỏ linux
ls -l | grep testing.txt | cut -f6 -d' '
cho kích thước nhưng cách lưu trữ trong biến trình bao?
size=`ls -l | grep testing.txt | cut -f6 -d' '`
Không đảm bảo rằng kích thước sẽ nằm trong trường 6 khi phân cách bằng dấu cách. –
Điều này cũng không hiệu quả vì đường ống 'ls' vào danh sách' grep' * tất cả * tệp trong thư mục và sắp xếp tên của chúng (có thể mất một lượng thời gian đáng kể trong một thư mục với hàng nghìn tệp). 'grep testing.txt' cũng trả về các tệp có các tên như' not_testingatxt_file' (như '.' trong một regex có nghĩa là match-any-character). –
bạn có thể làm theo cách này với ls
(đánh dấu trang người đàn ông cho ý nghĩa của -s)
$ var=$(ls -s1 testing.txt|awk '{print $1}')
Hoặc bạn có thể sử dụng stat
với -c '%s'
Hoặc bạn có thể sử dụng tìm (GNU)
$ var=$(find testing.txt -printf "%s")
giải pháp tìm kiếm hoạt động trên MINGW và git bash trên Windows. Không có câu trả lời nào khác hoạt động trên MINGW. – JDiMatteo
Nếu bạn muốn một phiên bản hoạt động trên * mọi hệ thống POSIX, 'wc -c' sẽ tốt hơn hoặc dựa vào hành vi' ls' * hoặc * khi có 'tìm' hoặc 'stat' của GNU. –
Lưu ý rằng wc -c là chính xác hơn cho các tệp giả như/proc/cpuinfo – pixelbeat
size() {
file="$1"
if [ -b "$file" ]; then
/sbin/blockdev --getsize64 "$file"
else
wc -c < "$file" # Handles pseudo files like /proc/cpuinfo
# stat --format %s "$file"
# find "$file" -printf '%s\n'
# du -b "$file" | cut -f1
fi
}
fs=$(size testing.txt)
a=\`stat -c '%s' testing.txt\`;
echo $a
Bash tôi đoán? – ziya
có vỏ bash và cảm ơn tất cả. –
Bản sao có thể có của [Cách kiểm tra kích thước của một tệp?] (Http://stackoverflow.com/questions/5920333/how-to-check-size-of-a-file) –