25Aug

Jak sprawić, aby pojedynczy plik pojawiał się w wielu folderach w tym samym czasie?

Jeśli masz dużą liczbę folderów skonfigurowanych do pracy i musisz korzystać z tego samego pliku skryptu we wszystkich z nich w ciągu dnia roboczego, to jaki jest najłatwiejszy sposób na wykonanie tego poza kopiowaniem i wklejaniem? Dzisiejszy post SuperUser Q & A ma kilka przydatnych odpowiedzi i porad dla sfrustrowanego czytelnika.

Dzisiejsze pytanie &Sesja odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, opartego na społecznościach grupy Q & A.

Zrzut ekranu z uprzejmości csaveanu( Flickr).

Pytanie Czytnik

SuperUser Elliot szuka najlepszego sposobu, aby ten sam plik wyglądał jak w wielu folderach jednocześnie:

Mam ponad 50 folderów, z których każdy zawiera dużą ilość danych, które muszą zostać przetworzone. Wszystkie są przetwarzane przy użyciu tego samego kodu, przy użyciu os.path.dirname( os.path.realpath( plik)) , aby uzyskać katalog, w którym znajduje się skrypt Pythona, więc użytkownik nie musi ręcznie edytować, wystarczy dwukrotnie kliknąć.

Potrzebuję skryptu, aby wyglądał tak, jak gdyby znajdował się w każdym folderze, podczas gdy w rzeczywistości jest tylko w jednym miejscu, tak, że mogę go edytować raz, a kiedy zostanie uruchomiony z dowolnej z tych lokalizacji, ścieżka folderu będzie poprawna. Alternatywą jest edycja wzorca, a następnie wklejanie go po jednym folderze za każdym razem przez wszystkie foldery 50+ za każdym razem, gdy aktualizuję kod, co jest bardzo uciążliwe i podatne na błędy. W Linuksie mógłbym ustawić to za pomocą dowiązania symbolicznego, ale nie mogę znaleźć sposobu, aby to zrobić w systemie Windows.

Alternatywnie, sposób wklejenia pliku do wszystkich katalogów docelowych naraz, zamiast pojedynczych naraz, dałby ten sam cel.

Czy istnieje sposób, aby to zrobić zamiast kopiować i wklejać plik skryptu po jednym folderze na raz?

Odpowiedź Odpowiedź

SuperUser gronostaj ma odpowiedź dla nas:

Potrzebujesz Symboliczny link lub twardy link .

Łącza symboliczne ( lub Symlinks w skrócie) są dość podobne do skrótów: istnieje jeden rzeczywisty plik i wiele odniesień( Symlinks ) do niego. Mają nawet tę małą strzałkę na ikonach. W przeciwieństwie do skrótów

Symlinks może mieć dowolne rozszerzenie.

Twarde łącza wiąże plik na dysku twardym z lokalizacją w drzewie katalogów. Każdy plik ma co najmniej jeden , w przeciwnym razie nie istnieje w żadnym katalogu. Jeśli plik ma wiele twardych łączy

, nie można odróżnić oryginalnego od pozostałych, a plik fizycznie istnieje tylko w jednej lokalizacji.

Oba mają swoje ograniczenia:

  • Niektóre programy nie ładnie współpracują z Symlinks .
  • Usunięcie oryginalnego pliku powoduje zerwanie wszystkich jego Symlinks .
  • Nie można Twarde łącze folderów( ale można utworzyć węzeł katalogowy, jeśli Symlink nie jest wystarczający).
  • Tworzenie między partycjami jest niemożliwe.

Symlinks są zwykle wystarczające.

Aby utworzyć łącze symboliczne lub twarde:

1. Uruchom uprzywilejowany wiersz polecenia: Naciśnij Windows Key , wpisz cmd , następnie naciśnij Ctrl + Shift + Enter .

2. Wydaj komendę mklink:

  • mklink nazwa_linii link_target dla pliku Symlink
  • mklink / d nazwa_linku link_target dla folderu Symlink
  • mklink / h nazwa_linku link_target dla pliku Twardy odsyłacz
  • mklink / j nazwa_link link_target dla Directory Junction

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.