Hogyan kaphatom meg a fájl méretét egy bash szkriptben?
Hogyan rendelhetem ezt hozzá egy bash változóhoz, hogy később felhasználhassam?
Megjegyzések
Válasz
A legjobb fogadás, ha GNU rendszeren van:
stat --printf="%s" file.any
Feladó: man stat :
% s teljes méret, bájtban
Bash szkriptben:
#!/bin/bash FILENAME=/home/heiko/dummy/packages.txt FILESIZE=$(stat -c%s "$FILENAME") echo "Size of $FILENAME = $FILESIZE bytes."
MEGJEGYZÉS: lásd
@chbrown válasza a stat használatához a Mac OS X terminálján.
Megjegyzések
- @ haunted85
stata legegyszerűbb módszer, feltételezve, hogy ‘ Linuxot vagy Cygwint használ (statnem ‘ t szabvány). Az Eug által javasoltwc -cmint , amelyet Eug ajánlott é ne hordozható. -
stat: illegal option -- c -
stat --printf="%s" file.txtnem ‘ t bármit kiadjon a Debian Jessie-n … - MacOS rendszeren ez működik:
stat -f%z myfile.tar - @woohoo Az Ön felülírása felülírja a kimenetet. A
man statszerint a –printf kihagyja a záró új sort. Használja a--formatvagy a-celemet a kimenet megtekintéséhez. További betekintést nyerhet astat --printf="%s" file.any | xxd -és astat -c "%s" file.any | xxd -
Válasz
összehasonlításával
file_size_kb=`du -k "$filename" | cut -f1`
A stat használatával az a probléma, hogy ez egy GNU (Linux) kiterjesztés. du -k és cut -f1 fájlokat a POSIX határozza meg, ezért bármely Unix rendszerbe hordozhatók.
A Solaris például bash-val szállít, de stat . Tehát ez nem teljesen hipotetikus.
ls hasonló problémája van, mivel a kimenet pontos formátuma nincs megadva, így a kimenet elemzése nem hajtható végre . A du -h szintén egy GNU kiterjesztés.
Ha lehetséges, tartsa be a hordozható konstrukciókat, és a jövőben megkönnyíti valakinek az életét. Talán a sajátját.
Megjegyzések
-
dunem adja meg a ‘ A fájl mérete azt jelzi, hogy mekkora helyet használ a fájl, ami finoman eltér (általában aduáltal jelentett méret a fájl mérete a legközelebbi értékre kerekítve blokkok száma, ahol a blokk tipikusan 512B, 1kB vagy 4kB). - @Gilles, a ritka fájlok (azaz olyanok, amelyekben vannak lyukak) kevesebbet jelentenek, mint a hossz.
- Ez a
--bytesvagy a-bés-khelyett az elfogadott válasz legyen. / li> - @fralau: Az OP ” ezt akarja rendelni egy bash változóhoz, hogy később használhassák “, így sokkal valószínűbb, hogy actut akarnak al numerikus érték, nem ember által olvasható közelítés. Ezenkívül a
-hegy GNU kiterjesztés; ez nem szabvány - A du használata a
--apparent-sizezászlóval többet eredményez pontos méret (ahogy az emberen is megfogalmazta:print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like)
Válasz
Használhatja a” word count “parancsot is (wc):
wc -c "$filename" | awk "{print $1}"
A wc problémája az, hogy “hozzáadja a fájlnevet és behúzza a kimenetet. Például:
$ wc -c somefile.txt 1160 somefile.txt
Ha szeretné elkerülni a teljes értelmezett nyelv vagy adatfolyam-szerkesztő láncolását, csak a fájlméret számának megszerzése érdekében, egyszerűen irányítsa át a bemenetet a fájlból, hogy wc soha ne láthassa a fájlnevet:
wc -c < "$filename"
Ez az utolsó űrlap a parancs behelyettesítésével könnyen megragadhatja azt az értéket, amelyet shell változóként keresett, amint azt a Gilles alább.
size="$(wc -c <"$filename")"
Megjegyzések
-
wc -c <"$FILENAME"megadja a méretet, más kényszer nélkül, ígysize=$(wc -c <"$FILENAME"). - Csak még egy pont: most teszteltem, és úgy tűnik, hogy a
wc -c < filenagyon gyors, legalábbis az OS X-en. I ‘ arra tippelek, hogy a wc-nek van agya, hogy megpróbálja statálni a fájlt, ha csak a -c van megadva. - @EdwardFalk: A GNU
wc -cafstat, de utána a fájl második utolsó blokkjára törekszik, és felolvassa az utolsó legfeljebbst_blksizebájtokat. Nyilvánvaló, hogy ez azért van, mert a Linux fájljai ‘ s/procés statisztikai mérete csak hozzávetőleges , és awca tényleges méretet akarja jelenteni, nem pedig a stat által jelentett méretet. Azt hiszem, furcsa lenne, hawc -cmás méretet jelentene, mint awc, de ‘ nem célszerű adatokat olvasni a fájlból, ha ‘ egy normál lemezfájl, és ‘ nincs a memóriában. Vagy ami még rosszabb: sorközeli szalagos tárolás … - Úgy tűnik, hogy
printfmég mindig látja a behúzást, pl.printf "Size: $size"– >size: <4 spaces> 54339. Másrésztechofigyelmen kívül hagyja a szóközt. Van valami módja annak, hogy következetes legyen? - @keithpjolley: A
fstathívásával. Próbálkozzon astrace wc -c </etc/passwdfuttatásával, és láthatja, hogy mit csinál.
Válasz
BSD “s (macOS” s) stat más formátumú argumentumjelzővel és más mezőmeghatározókkal rendelkezik. From man stat(1):
-
-f format: Információk megjelenítése a megadott formátumban. Az érvényes formátumok leírását a FORMÁTUMOK részben találja. - … a FORMÁTUMOK szakasz …
-
z: A fájl bájtokban.
Tehát most együtt:
stat -f%z myfile1.txt
MEGJEGYZÉS: lásd: @ b01 válasza a stat parancs használatára GNU / Linux rendszereken. 🙂
Megjegyzések
- Ne feledje, hogy ez csak BSD-s megoldás. Nem ‘ nem működik a GNU
stat, sajnos.
Válasz
Attól függ, mit értesz méret alatt.
size=$(wc -c < "$file")
megadja a fájlból kiolvasható bájtok számát. IOW, akkora, mint a fájl tartalma. Ez azonban elolvassa a fájl tartalmát (kivéve, ha a fájl normál fájl, vagy a legtöbb wc optimalizálásként a normál fájlhoz kapcsolódik). Ennek lehetnek mellékhatásai. Például egy megnevezett csőnél az elolvasott már nem olvasható újra, és például /dev/zero vagy /dev/random végtelen méretű, eltart egy ideig. Ez azt is jelenti, hogy read engedélyre van szüksége a fájlhoz, és előfordulhat, hogy a fájl utolsó hozzáférési időbélyegzője frissíteni kell.
Ez szabványos és hordozható, azonban vegye figyelembe, hogy egyes wc megvalósítások tartalmazhatnak vezető üres helyeket a kimenetben. Az egyik módja annak, hogy megszabaduljon tőlük, a következők használata:
size=$(($(wc -c < "$file")))
vagy elkerülhető az dash vagy yash amikor a wc nem hoz kimenetet (például amikor a fájl nem nyitható meg):
size=$(($(wc -c < "$file") +0))
ksh93 wc be van építve (ha engedélyezi, meghívhatja is) mint command /opt/ast/bin/wc), ami a leghatékonyabb a rendszeres fájlok számára ebben a héjban.
Különböző rendszerek rendelkeznek stat ez egy interfész a stat() vagy a lstat() rendszerhívásokhoz.
Ezek a jelentési információk a inode. Ezen információk egyike a st_size attribútum. A szokásos fájlok esetében ekkora a tartalom (mennyi adat olvasható ki belőle hiba hiányában (ezt használja a legtöbb wc -c megvalósítás az optimalizálás során) ). Szimlinkek esetén ez a cél elérési útjának bájtja. A megnevezett csövek esetében a rendszertől függően vagy 0, vagy a csőpufferben lévő bájtok száma. Ugyanaz a blokkolóeszközök esetében is, ahol a rendszertől függően 0 vagy az alapul szolgáló tároló bájtja lesz.
Az információk megszerzéséhez nem kell olvasási engedély a fájlhoz, csak a könyvtár, amelyhez kapcsolódik.
Időrend szerint:
-
IRIX
stat(90 “s):stat -qLs -- "$file"a iv id
st_sizeattribútumot adja vissza = “b8ccb6d7c5”>
(lstat()) vagy:
stat -s -- "$file"
ugyanaz, kivéve, ha $file egy szimbolikus link, ebben az esetben a fájl st_size je a szimbolikus felbontás után.
zsh stat beépített (ma más néven zstat) a zsh/stat modulban (betöltve a zmodload zsh/stat) (1997):
stat -L +size -- $file # st_size of file stat +size -- $file # after symlink resolution
vagy egy változóban való tároláshoz:
stat -L -A size +size -- $file
nyilvánvalóan ez a leghatékonyabb az a héj.
GNU stat (2001); 2 óta a BusyBoxban is stat 005 (másolva a GNU stat címről):
stat -c %s -- "$file" # st_size of file stat -Lc %s -- "$file" # after symlink resolution
(vegye figyelembe a fordított az IRIX-hez vagy a zsh stat -hez képest.
BSD-k stat (2002):
stat -f %z -- "$file" # st_size of file stat -Lf %z -- "$file" # after symlink resolution
Vagy használhatja egyes szkriptnyelvek stat() / lstat() funkcióját, például perl:
perl -le "print((lstat shift)[7])" -- "$file"
Az AIX-nek van egy istat parancs , amely az összes stat() fájlt ki fogja dobni (nem lstat(), tehát nem fog működni a szimbólum linkeken ) információk, amelyeket utólag feldolgozhat, például:
LC_ALL=C istat "$file" | awk "NR == 4 {print $5}"
(köszönöm @JeffSchaller a segítség a részletek kitalálásában ).
In tcsh:
@ size = -Z $file:q
(méret a symlink felbontás után)
Már jóval azelőtt, hogy a GNU bevezette volna a stat parancsot, ugyanezt el lehetett érni a GNU find parancs a -printf predikátummal (már 1991-ben):
find -- "$file" -prune -printf "%s\n" # st_size of file find -L -- "$file" -prune -printf "%s\n" # after symlink resolution
Azonban az egyik kérdés, hogy nem “t” akkor működik, ha a $file - -vel kezdődik, vagy find predikátum (például !, ( …).
A stat() / lstat() információ ls.
POSIXlyan megteheti:
LC_ALL=C ls -dn -- "$file" | awk "{print $5; exit}"
és adja hozzá ugyanezért a -L -t a symlink felbontása után. Ez azonban nem működik az eszközfájlok esetében, ahol az 5. th mező az eszköz főszáma a méret helyett.
Blokkolóeszközök esetén azok a rendszerek, ahol 0 értéket ad vissza a st_size értékre, általában más API-val rendelkezik a blokkoló eszköz méretének jelentésére. Például a Linux rendelkezik az BLKGETSIZE64 ioctl(), és a legtöbb Linux disztribúció most egy blockdev paranccsal szállítja, amely kihasználhatja:
blockdev --getsize64 -- "$device_file"
Ehhez azonban olvasási engedélyre van szükséged az eszközfájlhoz. A méretet általában más módon lehet levezetni. Például (még mindig Linux rendszeren):
lsblk -bdno size -- "$device_file"
Az üres eszközök kivételével működnie kell.
Az összes megközelítésnek megfelelő megközelítés kereshető fájlok (így a szokásos fájlok, a legtöbb blokkolóeszköz és néhány karaktereszköz is) a fájl megnyitása és a végére való törekvés:
-
zsh(azsh/systemmodul betöltése után):{sysseek -w end 0 && size=$((systell(0)))} < $file -
A következővel:
ksh93:< "$file" <#((size=EOF))vagy
{ size=$(<#((EOF))); } < "$file" -
a következővel:
perl:perl -le "seek STDIN, 0, 2 or die "seek: $!"; print tell STDIN" < "$file"
Megnevezett csövek esetében azt láttuk, hogy egyes rendszerek (legalább AIX, Solaris, HP / UX) a csőv pufferben lévő adatok mennyiségét elérhetővé teszik a stat() “s alatt st_size. Egyesek (például a Linux vagy a FreeBSD) nem “t”.
Legalább Linux rendszeren használhatja a FIONREAD ioctl() miután kinyitotta a csövet (olvasási + írási módban, hogy elkerülje a lógást):
fuser -s -- "$fifo_file" && perl -le "require "sys/ioctl.ph"; ioctl(STDIN, &FIONREAD, $n) or die$!; print unpack "L", $n" <> "$fifo_file"
Vegye figyelembe azonban, hogy bár nem “t olvas a cső tartalma, a megnevezett cső puszta kinyitása itt is okozhat mellékhatásokat. A fuser használatával először ellenőrizzük, hogy valamilyen folyamatnak van-e már nyitott csöve ennek enyhítésére, de ez nem bolondbiztos, mint fuser nem tudja ellenőrizni az összes folyamatot.
Mostanáig csak a fájlokkal társított elsődleges adatok méretét vettük figyelembe.Ez nem veszi figyelembe a metaadatok méretét és a fájl tárolásához szükséges összes támogató infrastruktúrát.
A stat() által visszaadott másik inode attribútum a st_blocks. Ez az 512 bájtos blokkok száma, amelyet a fájl adatainak (és néha egyes metaadatainak, például a kiterjesztett attribútumoknak az ext4 fájlrendszereken való tárolásához használnak Linuxon) használnak. Ez nem “nem tartalmazza magát az inode-ot vagy a fájlokhoz kapcsolódó könyvtárak bejegyzéseit.
A méret és a lemezhasználat nem feltétlenül szorosan kapcsolódik egymáshoz, például tömörítés, ritkaság (néha néhány metaadat), extra infrastruktúra, például közvetett blokkok egyes fájlrendszerekben ez utóbbira van hatással.
Ezt általában a du használja a lemezhasználat jelentésére. A fent felsorolt parancsok többsége képes lesz megkapja ezeket az információkat.
-
POSIXLY_CORRECT=1 ls -sd -- "$file" | awk "{print $1; exit}" -
POSIXLY_CORRECT=1 du -s -- "$file"(nem könyvtárakhoz ahol ez magában foglalná a lemez usag-ot e fájlok). - GNU
find -- "$file" -printf "%b\n" -
zstat -L +block -- $file - GNU
stat -c %b -- "$file" - BSD
stat -f %b -- "$file" -
perl -le "print((lstat shift)[12])" -- "$file"
Megjegyzések
- egyértelműen a legátfogóbb és leginformatívabb válasz. köszönöm. ezt használhatom crossplatform bash szkriptek létrehozására a BSD és a GNU statisztikák információinak felhasználásával
- Szórakoztató tény: A GNU coreutils
wc -cfstat, de ezután beolvassa az utolsó up-tost_blksizebájtokat. Nyilvánvaló, hogy ez azért van, mert a Linux fájljai ‘ s/procés statisztikai mérete csak hozzávetőleges . Ez jó a helyességhez, de rossz, ha a fájl vége a lemezen van, és nincs a memóriában (pl. Ha egy hurokban sok fájlra használják). És nagyon rossz, ha a fájlt sorközeli szalagos tárolóba , vagy pl. egy FUSE átlátszó dekompressziós fájlrendszer. - ez sem működne
ls -go file | awk '{print $3}' - @StevenPenny azoknak
-goa SysV-ké lenne, ők nem ‘ nem dolgoznának BSD-ken (opcionális (XSI) a POSIX-ban). ‘ Szüksége van mégls -god file | awk '{print $3; exit}'(-d, hogy könyvtárakon működjön,exitszimbolikus linkek esetén új vonallal a célpontban). Az eszközfájlokkal kapcsolatos problémák továbbra is fennállnak. - @ αғsнιη az Unix API nem tesz különbséget a szöveges és a bináris fájlok között. ‘ minden bájtsorozatot tartalmaz. Néhány alkalmazás érdemes ezeket a bájtokat szövegként értelmezni, de nyilvánvalóan nem a
wc -c, amely a bájtok számát jelenti.
Válasz
Ez a szkript számos módon ötvözi a fájlméretet:
( du --apparent-size --block-size=1 "$file" 2>/dev/null || gdu --apparent-size --block-size=1 "$file" 2>/dev/null || find "$file" -printf "%s" 2>/dev/null || gfind "$file" -printf "%s" 2>/dev/null || stat --printf="%s" "$file" 2>/dev/null || stat -f%z "$file" 2>/dev/null || wc -c <"$file" 2>/dev/null ) | awk "{print $1}"
A szkript sok Unix rendszerben működik beleértve a Linuxot, a BSD-t, az OSX-et, a Solaris-t, a SunOS-t stb.
A fájlméret a bájtok számát mutatja. Ez a látszólagos méret, vagyis az a bájt, amelyet a fájl egy tipikus lemezen használ, különösebb tömörítés, speciális ritka területek vagy el nem osztott blokkok stb. Nélkül.
Ennek a szkriptnek van egy produkciós verziója, több segítséggel és további lehetőségek itt: https://github.com/SixArm/file-size
Válasz
stat ezt a legkevesebb rendszerhívással teszi:
$ set debian-live-8.2.0-amd64-xfce-desktop.iso $ strace stat --format %s $1 | wc 282 2795 27364 $ strace wc --bytes $1 | wc 307 3063 29091 $ strace du --bytes $1 | wc 437 4376 41955 $ strace find $1 -printf %s | wc 604 6061 64793
A válasz
ls -l filename rengeteg információt ad egy fájlról, beleértve a fájl méretét, engedélyeit és tulajdonosát.
A fájl mérete az ötödik oszlopban, és bájtokban jelenik meg. Az alábbi példában a fájlméret alig 2KB alatt van:
-rw-r--r-- 1 user owner 1985 2011-07-12 16:48 index.php
Szerkesztés: Ez nyilvánvalóan nem annyira megbízható, mint a stat parancs.
Megjegyzések
- szerintem a
ls -lés astatparancs egyaránt megbízható méretinformációt ad. Nem találtam ellenkező utalást. Als -smegadja a blokkok számát. - @ dabest1 ez ‘ nem megbízható bizonyos értelemben, másik unix, a kimenetük eltérő lehet (és egyes unixeknél ez is van).
- Igen, IIRC, Solaris nem ‘ nem jelenítette meg alapértelmezés szerint a csoport nevét, kevesebb oszlopot eredményez a kimenetben.
- Mivel a méret tiszta numerikus, üres szóköz veszi körül, és a dátum év tiszta numerikus, meghatározott formátumban, lehetséges lenne egy regexp használatával kezelni a felhasználót + tulajdonos mint egy mező, függetlenül attól, hogy a csoport jelen volt-e. (gyakorlat az olvasó számára!)
Válasz
du filename megmondja a lemezhasználatot bájtokban.
Inkább a du -h filename -t részesítem előnyben, amely az ember számára olvasható formátumban adja meg a méretet.
Megjegyzések
- hogy vagy
stat -c "%s"😉 - A
duíze ezt a blokkot nyomtatja ki 1024 bájt, nem egyszerű bájtok száma. - Ne feledje, hogy a standard
du512 bájtos egységek kimenetét adja. A GNUdukibibyte-okat használ, kivéve, ha a környezetébenPOSIXLY_CORRECT-vel hívják. - könyvtár típusú fájlokhoz , amely megadja a könyvtár, valamint az összes többi fájl (rekurzív) lemezhasználatát.
Válasz
Hozzon létre olyan kis segédfunkciókat a shell szkriptjeiben, amelyekre delegálhatja őket.
Példa
#! /bin/sh - # vim: set ft=sh # size utility that works on GNU and BSD systems size(){ case $(uname) in (Darwin | *BSD*) stat -Lf %z -- "$1";; (*) stat -c %s -- "$1" esac } for f do printf "%s\n" "$f : $(gzip < "$f" | wc -c) bytes (versus $(size "$f") bytes)" done
A @ Stéphane Chazelas információi alapján “válasz.
Megjegyzések
- Lásd még:
gzip -v < file > /dev/nulla fájl tömöríthetőségének ellenőrzéséhez. - @St é phaneChazelák nem biztosak benne, hogy szerintem javulás volt-e. Ezek az esetmegállapítások könnyen elrugaszthatják a noobokat; biztosan soha nem emlékszem, hogyan lehetne ezeket rendbe hozni 🙂 az esetbemutatók eredendően hordozhatóbbak, mivel Ön csináltam? úgy látom, hogy kétnél több eset van, de különben … +
- feltételezem, hogy ‘ ez is ízlés kérdése, de itt ‘ s az a tipikus eset, amikor ‘ egy
caseutasítás.casea Bourne / POSIX konstrukció, amely a minták egyeztetését végzi.[[...]]csak a ksh / bash / zsh (változatokkal).
Válasz
Találtam egy AWK 1 vonalhajózást, és hibája volt, de kijavítottam. A TeraBytes után PetaBytes-be is tettem.
FILE_SIZE=234234 # FILESIZE IN BYTES FILE_SIZE=$(echo "${FILE_SIZE}" | awk "{ split( "B KB MB GB TB PB" , v ); s=1; while( $1>1024 ){ $1/=1024; s++ } printf "%.2f %s", $1, v[s] }")
Figyelembe véve a stat nincs minden egyes rendszeren, szinte mindig használhatja az AWK megoldást. Példa; a Raspberry Pi-nek nincs stat , de awk .
Megjegyzések
- Teljesen NEM az, amit az OP kért, de szép kis alkotás.
Válasz
Magam is szeretem a wc opciót. A “bc” -vel párosítva tetszőleges helyre kaphat tizedesjegyeket.
Arra törekedtem, hogy javítsak egy olyan szkriptet, amellyel az awk kiadta az “ls -” fájlméret “oszlopot. alh “parancs. Nem akartam csak egész fájlméreteket, és úgy tűnt, hogy két tizedesjegy megfelel, ezért a vita elolvasása után előálltam az alábbi kóddal.
Azt javaslom, hogy szakítsa meg a pontosvesszők vonalát, ha ezt beírja egy szkriptbe.
file=$1; string=$(wc -c $file); bite=${string% *}; okay=$(echo "scale=2; $bite/1024" | bc);friend=$(echo -e "$file $okay" "kb"); echo -e "$friend"
Saját a szkript neve gpfl , a “képfájl hosszának lekérése” kifejezésre. Használom, miután mogrify t hajtok végre egy fájlon az imagemagick alkalmazásban, mielőtt képet nyitnék vagy újratöltenék egy GUI jpeg nézőben.
Nem tudom, hogy ez hogyan értékelhető “válasz”, mivel sokat kölcsönöz abból, amit már felajánlottak és megvitattak. Tehát ott hagyom.
BZT
Megjegyzések
- Szeretném használni ” stat ” vagy ” ls “. Általában nem ‘ nem szeretem a ” wc ” fájlt használni, mert fizikailag elolvassa az egész fájlt. Ha sok fájlja van, vagy különösen nagy fájlja van, ez sok időt vehet igénybe. De a megoldása kreatív … + 1.
- Egyetértek az elképzelésekkel ” stat ” használatával ” wc ” a fájlmérethez, azonban ha a ” wc -c ” fájlt használja, akkor az adatok nem lesznek olvashatók; ehelyett az kitalálni a fájl bájtjainak számát. lingrok.org/xref/coreutils/src/wc.c#228
- @ bbaja42 : vegye figyelembe, hogy a GNU Coreutils beolvassa a fájl utolsó blokkját, abban az esetben, ha a
stat.st_sizecsak közelítés volt (mint a Linux esetében:/procés/sysfájlok). Gondolom, úgy döntöttek, hogy nem bonyolítják a fő megjegyzést, amikor pár sorral lejjebb adták ezt a logikát: lingrok.org/xref/coreutils/src/wc.c#246
Válasz
A leggyorsabb és legegyszerűbb (IMO) módszer:
bash_var=$(stat -c %s /path/to/filename)
Megjegyzések
- Ezután szavazzon egy vagy több meglévő választ, amely említi a stat-t; nem kell újra megismételni …
- @JeffSchaller Most Stephane ‘ válaszát szavaztam meg az utasításaid alapján.Úgy gondolom, hogy ez túl bonyolult a céljaimhoz. Ezért tettem közzé ezt az egyszerű választ hasonló gondolkodású lelkeknek.
- Köszönöm; ‘ csak egy ” stat ” hatodik példánya A / div> answer nem ‘ t nem egyszerűsíti ezt a Q & A-t, de inkább egy új olvasót kérdezne meg maguktól ” miben különbözik ez a válasz a többitől? ” és kevesebb zavart okoz.
- Gondolom, @JeffSchaller. De panaszkodhatnék a sok
duéswcválaszra, amelyekre vonatkozó felelősség kizárása szükséges SOHA NE TEGYE EZT valójában élet. A válaszomat ma egy való életben használtam, és úgy gondoltam, hogy érdemes megosztani. Azt hiszem, mindannyiunk véleménye megvonja a vállát .
pvéscataz előrehaladást és az ETA-t bemutató másolási parancshoz:-s, így egyszerűen tesztelheti, hogy egy fájlnak nincs-e nulla hossza, aif [ -s file ]; then echo "file has nonzero size" ; fi