Mam folder o nazwie img
, ten folder ma wiele poziomów podfolderów, z których wszystkie zawierają obrazy. Zamierzam je zaimportować na serwer obrazów.
Zwykle obrazy (lub dowolne pliki) mogą mieć tę samą nazwę, o ile znajdują się w innej ścieżce katalogu lub mają inne rozszerzenie. Jednak serwer obrazów, do którego importuję je, wymaga, aby wszystkie nazwy obrazów były unikalne (nawet jeśli rozszerzenia są różne).
Na przykład obrazy background.png
i background.gif
nie byłyby dozwolone, ponieważ mimo że mają różne rozszerzenia, nadal mają tę samą nazwę pliku. Nawet jeśli znajdują się w osobnych podfolderach, nadal muszą być unikalne.
Zastanawiam się więc, czy mogę przeprowadzić wyszukiwanie cykliczne w img
folderze, aby znaleźć listę plików o tej samej nazwie (bez rozszerzenia).
Czy istnieje polecenie, które może to zrobić?
źródło
Odpowiedzi:
FSlint to wszechstronna wyszukiwarka duplikatów, która zawiera funkcję wyszukiwania duplikatów nazw:
Pakiet FSlint dla Ubuntu podkreśla interfejs graficzny, ale jak wyjaśniono w FAQ FSlint, interfejs wiersza poleceń jest dostępny za pośrednictwem programów w
/usr/share/fslint/fslint/
. Użyj--help
opcji dla dokumentacji, np .:Przykładowe użycie:
źródło
ls -l
do sformatowania danych wyjściowych. To pytanie powinno wyjaśnić, co oznaczają kolory.Jak stwierdzono w komentarzu, to również znajdzie foldery. Oto polecenie, aby ograniczyć go do plików:
źródło
uniq
nie zapewniają funkcji wyboru innego separatora pola.sed
przestarzały? Tajemna? Pewnie. Przestarzały? Nie, że jestem świadomy. (I właśnie szukałem, aby sprawdzić.)Zapisz to w pliku o nazwie
duplicates.py
Następnie uczyń plik wykonywalnym:
Uruchom np. W ten sposób:
Powinien wypisywać pary plików o tej samej nazwie basename (1). Napisane w Pythonie, powinieneś być w stanie je modyfikować.
źródło
P001.ORF
iP001 (1).ORF
duplikuje, a także wydaje się myśleć, że 60% moich plików to duplikaty, co jest błędne, jestem pewien.fslint
znaleziono realną liczbę zduplikowanych nazw plików, która jest bliska 3%.Zakładam, że potrzebujesz tylko tych „duplikatów”, a następnie obsłużyć je ręcznie. Jeśli tak, to ten kod bash4 powinien robić, co chcesz.
Zobacz http://mywiki.wooledge.org/BashGuide/Arrays#Associative_Arrays i / lub instrukcję bash, aby uzyskać pomoc na temat składni tablic asocjacyjnych.
źródło
To jest bname:
Spraw, by był wykonywalny:
Wywołaj to:
Zawodowiec:
Kon:
źródło
Ulepszenie skryptu loevborga, na moje potrzeby (zawiera zgrupowane dane wyjściowe, czarną listę, czystsze dane wyjściowe podczas skanowania). Skanowałem dysk 10 TB, więc potrzebowałem nieco czystszego wyjścia.
Stosowanie:
python duplicates.py DIRNAME
duplicates.py
źródło