Jak przenieść folder w unixie przy użyciu mv, tylko gdy cel znajduje się na tym samym dysku
10
Muszę przenieść folder za pomocą polecenia univ mv, ale tylko wtedy, gdy obiekt docelowy znajduje się na tym samym dysku lub w tym samym systemie plików. Jakie byłoby najlepsze podejście?
Myślisz, że jest kompatybilny z wszystkimi dystrybucjami Linuksa?
Aby rozpowszechnić lepszą praktykę, użyj $(...)zamiast `...`. Ten drugi jest przestarzały na rzecz tego pierwszego.
Shahbaz
Dzięki @Shahbaz, właśnie edytowałem to z twoją rekomendacją!
fedorqui
@zapp Nie wiem, powinienem to przetestować. Z moich doświadczeń statwynika, że czasem jest to trudne, przynajmniej z SunOS. Ale jako Linux mam nadzieję, że jest kompatybilny. Z moim Ubuntu 12 jest w porządku.
fedorqui
to %ddaje różne wartości dla różnych katalogów (nawet ta sama partycja) spróbuj z twoim /i/tmp
Kent 29'13
2
Nie jest to prawdopodobnie najczystsze rozwiązanie, ale można skorzystać z faktu, że nie można utworzyć twardych łączy między dyskami.
Odpowiedzi:
Na podstawie tego, jak sprawdzić, czy dwa katalogi lub pliki należą do tego samego systemu plików ( https://unix.stackexchange.com/ ):
Więc możesz:
a następnie porównaj.
Możesz także napisać w ten sposób:
Inna opcja. Również wzięty z pytania Stackexchange :
źródło
$(...)
zamiast`...`
. Ten drugi jest przestarzały na rzecz tego pierwszego.stat
wynika, że czasem jest to trudne, przynajmniej z SunOS. Ale jako Linux mam nadzieję, że jest kompatybilny. Z moim Ubuntu 12 jest w porządku.%d
daje różne wartości dla różnych katalogów (nawet ta sama partycja) spróbuj z twoim/
i/tmp
Nie jest to prawdopodobnie najczystsze rozwiązanie, ale można skorzystać z faktu, że nie można utworzyć twardych łączy między dyskami.
źródło