Pod warunkiem, że katalog o tej nazwie nie istnieje, nazwa pliku została zmieniona na openvpn
znajdującą się w katalogu głównym /
. Aby to przywrócić, uruchom:
sudo mv /openvpn /etc/MyFile.conf
Jeśli katalog istniał, to przeniesiesz do niego plik, a następnie przywrócenie:
sudo mv /openvpn/MyFile.conf /etc/
Aby przenieść go do istniejącego podkatalogu bieżącego katalogu, możesz uruchomić dowolny z nich - używają one ścieżek względnych :
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
.
to link do bieżącego katalogu, więc ./
na początku ścieżki oznacza „w tym katalogu”. Ukośnik na końcu oznacza openvpn
katalog, w którym chcesz przenieść plik. Jeśli nie zapewniają go, plik zostanie przeniesiony do niego, jeśli katalog o tej nazwie istnieje, inny plik zostanie przemianowany na openvpn
. Znak „ /
na końcu” mv
ostrzega o braku katalogu i nie zmienia nazwy, więc jest to bezpieczny sposób, jeśli nie chcesz zmieniać nazwy.
Jeśli twoja ścieżka zaczyna się /
od, jest to ścieżka bezwzględna niezależnie od bieżącego katalogu roboczego, zawsze jest względna do katalogu głównego /
. Używając ścieżek bezwzględnych zarówno dla pliku, jak i miejsca docelowego, twoje polecenie wyglądałoby tak:
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
Dalsza lektura
sudo mv /openvpn/MyFile.conf /etc/
najpierw wypróbuj polecenie. W prawdopodobnym scenariuszu katalog nie istniał, po prostu wyświetli błąd (prawdopodobnie „Nie katalog”) i nie dotknie systemu plików. Następnie możesz po prostu zrobićsudo mv /openvpn /etc/MyFile.conf
.Musisz użyć
przenieść
MyFile.conf
plik doopenvpn
podkatalogu/etc/
.Z drugiej strony
zamiast tego przeniósłby plik do
/
katalogu jakoopenvpn
(tj. zmienił nazwę na asopenvpn
) (zakładając, że/openvpn
katalog nie istnieje).źródło
Przenosząc plik, informujesz system operacyjny o katalogu, w którym chcesz go umieścić, lub o nowej ścieżce, którą chcesz podać.
Powiedziałeś systemowi operacyjnemu „/ openvpn”. Więc zrobi to dokładnie - sprawdź, czy / openvpn istnieje (co oznacza obiekt o nazwie „openvpn” znajdujący się w katalogu głównym) i jest katalogiem, a jeśli tak, przenieś do niego swój plik, lub jeśli / openvpn jest plikiem lub nie istnieje, zmień nazwę i przenieś plik, aby był dostępny jako / openvpn.
To, co chciałeś zrobić, to przenieść go do katalogu „openvpn”, który znajduje się w twoim bieżącym katalogu , a nie w katalogu głównym systemu plików (co oznacza wiodące „/”). Musiałeś więc wskazać ten katalog w poleceniu move, a nie ścieżkę bezwzględną „/ openvpn”. Każdy z nich będzie działał:
mv MyFile.conf openvpn
- spójrz do mojego obecnego katalogu na ten „openvpn”mv MyFile.conf /etc/openvpn
- poszukaj absolutnej ścieżki / etc / openvpnmv MyFile.conf openvpn/
- zajrzyj do mojego aktualnego katalogu, aby znaleźć katalog o nazwie openvpnmv MyFile.conf ./openvpn
- czyni „obecny katalog” jeszcze bardziej oczywistymKrótka wersja - prawdopodobnie użyłeś słowa „/”, aby oznaczać „mój bieżący katalog”, dlatego też „/ openvpn” oznacza „openvpn, który znajduje się w moim bieżącym katalogu”. Ale wiodące „/” zawsze oznacza „katalog główny”, więc „/ openvpn” oznacza „openvpn w katalogu głównym”. Potrzebne było po prostu użycie „openvpn” lub „openvpn /”, co oznacza „openvpn w moim bieżącym katalogu ”.
źródło
Każda ścieżka, która zaczyna się od,
/
jest ścieżką bezwzględną, a nie względną.Gdyby wszystkie ścieżki były zawsze względne w stosunku do bieżącego katalogu, jak byś to zrobił
cd /etc
? Musiałbyś miećcd ../../../../../etc
nadzieję, że to wystarczający poziom..
, lub po prostu kontynuuj,cd ..
aż dojdziesz do katalogu głównego.Lub potrzebujesz innej składni, aby wyrazić ścieżki bezwzględne. Ale Unix zdecydował się na
/
znaczenie absolutne, wszystko inne jest związane z bieżącym katalogiem roboczym procesu. Takmv MyFile.txt openvpn
by działało.I nie, nie byłoby dobrze, aby wnioskować o wartości bezwzględnej i względnej na podstawie plików istniejących lub nie. Nie chcemy
mkdir
wywołań systemowych traktować odmiennie od ścieżekchdir
lubrename
wywołań systemowych oraz dokonywaniamv
programu zrobić to po prostu pozostawia pole do rozbieżności pomiędzymv
i innego programu, która pobiera nazwę pliku wyjściowego.mv
jest już wyjątkowy, ponieważ gdyrename()
miejscem docelowym jest katalog, dołącza źródłową nazwę pliku do tego katalogu docelowego i próbuje ponownie. Zauważ jednak, że jedna prosta strategia implementacji opiera się na pierwszymrename()
niepowodzeniu wywołania systemowego zEEXIST
lubEISDIR
. Musimy więc wiedzieć, czy ścieżka jest względna czy bezwzględna przed sprawdzeniem systemu plików.(Wczesny Unix działał na wolnych komputerach, gdzie dodatkowe sprawdzenie, czy katalog istnieje, może oznaczać dodatkowe operacje wejścia / wyjścia, jeśli nie były buforowane, lub większą presję na buforowanie katalogu. Ale myślę, że argumenty rozsądku / poprawności są wystarczające, aby wyjaśnić, dlaczego pierwszy zgadujesz nie był to wiarygodny sposób działania systemu bez uciekania się do historycznych argumentów dotyczących wydajności).
źródło
Aby wypełnić pozostałe odpowiedzi:
jest taki sam jak dla Windows
System plików w systemie Linux jest uważany za zgodny ze standardem hierarchii systemu plików , w skrócie FHS . pomaga wiedzieć, gdzie należy umieścić plik, w zależności od jego charakteru i zawartości.
Pierwszy folder (odpowiednik
c:
w systemie Windows) to/
.źródło