Az aktuális könyvtár átnevezése héjból – lehetséges?

Á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.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük