Átnevezhetjük-e az aktuális munkakönyvtárat egy héjból (az én esetemben Bash)? Ha megpróbálom ezt egyszerű módon megtenni, akkor hiba következik be:
nathan@nathan-desktop:/tmp/test$ mv . test2 mv: cannot move ‘.’ to ‘test2’: Device or resource busy
Van más módszer erre az aktuális könyvtár megváltoztatása nélkül? Tisztában vagyok vele, hogy ezt könnyedén meg tudom valósítani a szülő könyvtárra váltással, de kíváncsi vagyok, ha erre szükség van. Végül is, ha átnevezem a könyvtárat egy másik héjról, akkor utána is létrehozhatok fájlokat az eredeti shellben. p>
Válasz
Igen, de a könyvtárra név szerint kell hivatkozni, nem pedig a .
jelölés. Használhat relatív elérési utat, ennek csak valami mással kell végződnie, mint .
vagy ..
:
/tmp/test$ mv ../test ../test2 /tmp/test$ pwd /tmp/test /tmp/test$ pwd -P /tmp/test2
Abszolút elérési utat használhat:
/tmp/test$ cd -P . /tmp/test2$ mv "$PWD" "${PWD%/*}/test3" /tmp/test2$
Hasonlóképpen, soha nem fog működni, de rmdir "$PWD"
működik.
Megjegyzések
- Tökéletes … pontosan arra a válaszra számítottam, amelyet reméltem.
- Az alapkérdés az, hogy ' nem engedélyezi a speciális ". " és .. " nevek.
Válasz
Mint a @Gilles válaszban, de a rövidség érdekében zárójel-bővítést használ:
mv ../{test,test2}
Válasz
És attól függ, hogyan definiálod „az aktuális könyvtár megváltoztatását” ”.
/tmp/test$ (cd .. && mv test test2) /tmp/test$ pwd /tmp/test /tmp/test$ pwd -P /tmp/test2
létrehoz egy alhéjat, és megváltoztatja az alhéj aktuális könyvtárát, de az elsődleges héjat ott hagyja, ahol volt.