Articles
find: nem tud elágazni: Nem lehet memóriát lefoglalni
On november 18, 2020 by adminEgyszerre 1 fájlt szeretnék törölni a könyvtáramból, amely annyi fájlt tartalmaz, ezért szeretnék eltávolítani 1 fájlt fájl egyszerre. Csak azért, hogy elkerüljem a túl sok olvasást és túl sok argumentumot.
find ./Backup/ -name "*.csv" -maxdepth 1 -exec rm {} \; find: warning: you have specified the -maxdepth option after a non-option argument -name, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments. find: cannot fork: Cannot allocate memory
Nem akarok rekurzív módon törölni egy gyermekkönyvtárból, ezért a -maxdepth 1. Van valamilyen segítség és javaslat?
Megjegyzések
Válasz
A cannot fork
üzenet akkor jelenhet meg, amikor a csere terület megtelt. Előfordulhat, hogy a tmpfs
fájlrendszer (valószínűleg) a /tmp
fájlra van telepítve, és nincs elegendő helye a kernelnek új folyamatok létrehozásához.
Ellenőrizze, hogy van-e /tmp
még hely a df -h /tmp
használatával. Ha megtelt, először próbálkozzon a /tmp
tisztítással.
Megjegyzések
- A csere és a tmpf nem kapcsolódó, kivéve, hogy mindkettő a rendelkezésre álló memória részhalmaza. Az új folyamatok létrehozásához a
/tmp
hely nem szükséges. A memóriában van hely, de az összeg olyan kicsi, hogy a/tmp
fájlban lévő dolgok eltávolítása nem valószínű, hogy villát tesz lehetővé. - / tmp még a teljes.
- @Gilles, a Solarison
/tmp
aktuálistmpfs
és amikor teljesen (+ 100%) Használtunable to fork; not enough space
üzeneteket kap. Az OP által kapott üzenetekcannot fork; unable to allocate memory
. Elnézést, hogy Solaris megoldást javasoltam, és nem először kértem az operációs rendszert. Az operációs rendszer ellenőrizheti aulimit -a
és aulimit -aH
értékeket, hogy megnézze, van-e memóriakorlát, amelyet el lehet ütni a folyamat során. Érdemes megpróbálni megnézni a/etc/security/limits.conf
oldalt is, hogy megállapítsunk-e valamilyen korlátot. - Ugyanez a probléma merült fel bennem, hogy sok hely áll rendelkezésre a / tmp fájlban, de a csere nem aktiválódott. [code] swapon / dev / sdXn [/ code] megoldotta a problémát.
-exec rm {} \;
helyett-delete
kell megoldania. Ezen kívül csak mozgassa-maxdepht 1
a-name
előtt. Ne ' ne felejtsen el tesztelni először.-exec ... '{}' \+
formában afind
megtakarítható a villákon, mivel ez emulálja axargs
afind
(modern) verzióiban.