Kopiowanie plików z wiersza poleceń do schowka

18

W menedżerze plików GUI można wybrać kilka plików, nacisnąć Ctrl-C (który rzekomo kopiuje informacje o plikach do schowka), a następnie przejść do innego folderu i nacisnąć Ctrl-V, który następnie skopiuje pliki do tego informator.

W ramach eksperymentu po skopiowaniu plików w menedżerze plików można przejść do edytora tekstu - naciśnięcie Ctrl-V powoduje wklejenie listy bezwzględnych nazw plików. Proces odwrotny (kopiowanie listy plików z edytora tekstu i wklejanie ich do menedżera plików) nie działa, co prawdopodobnie wynika z różnych atomów docelowych

Celem tego ćwiczenia jest na przykład możliwość skopiowania niektórych plików z wiersza poleceń

find ${PWD} -name "*.txt" | xclip <magic parameters>

następnie przejdź do menedżera plików i skopiuj je wszystkie do katalogu za pomocą Plik-> Wklej.

Pytanie brzmi: jakie parametry xclip(lub innego programu) muszę określić, aby menedżer plików rozpoznał wybór jako listę plików i włączył opcję menu Wklej?

Alternatywnie, czy istnieje narzędzie niskiego poziomu, które pozwoliłoby sprawdzić zawartość selekcji X i zobaczyć, jakie dane obecnie zawiera?

Siergiej
źródło

Odpowiedzi:

12

Tak, w zasadzie musisz zaoferować wybór SCHOWKA jako

  • text/uri-list z treścią

    /path/to/file1
    /path/to/file2
    
  • application/x-kde-cutselectionlub x-special/gnome-copied-filesz zawartością copy\nfile://$path1\nfile://$path2\0lubcut\nfile://$path1\nfile://$path2...\0

Dzięki temu xclipmożesz to osiągnąć za pomocą czegoś takiego

find "$PWD" -name "*.pdf"| xclip -i -selection clipboard -t text/uri-list

Ja również znaleźć ten loliclip polecenia, które wyglądało obiecujących, ale chociaż mogę pobrać wartości, nie byłem w stanie je przechowywać i mieć je pobrać z loliclipprzez pcmanfmpomyślnie.

Powinieneś być również w stanie zaimplementować go w kilku liniach perl-tk.

Stéphane Chazelas
źródło
Ok, po kilku drobiazgach text/uri-listzadziałał dla mnie wariant - jestem w stanie skopiować rzeczy z wiersza poleceń i wkleić pliki do menedżera plików Dolphin. Nie wymaga nawet file://prefiksów, dzięki którym polecenie działa poprawnie find. Zredagowałem twoje pytanie, aby dodać polecenie, które działa dla mnie w KDE - czy ktoś może przetestować je w Gnome lub gdzie indziej?
Siergiej
Dzięki za edycję. Wygląda na file://to, że nie jest to konieczne w pcmanfmżadnym z tych programów (chociaż pcmanfm zawiera to samo). Przypuszczam, że niektóre znaki specjalne (przynajmniej LF) powinny być zakodowane w URI.
Stéphane Chazelas
Tak. Mogę potwierdzić, że musisz używać file:///new%0Alineplików, które zawierają znaki nowego wiersza, chociaż każdy inny znak (w tym kodowanie inne niż ASCII w dowolnym kodowaniu) wydaje się być w porządku (przynajmniej z pcmanfm)
Stéphane Chazelas
1

dlaczego nie findzrobić tego dla ciebie?

find ${PWD} -name "*.txt" -exec cp {} /full/path \; && gnome-open /full/path &

EDYCJA: z tego co rozumiem man xclip: obsługuje tylko tekst, a nie pliki lub katalogi.

h3rrmiller
źródło
Głównie dlatego, że jest to eksperyment, chociaż myślę, że „skopiuj pliki do schowka teraz, zdecyduj, gdzie chcesz je później wkleić” byłby przydatnym sposobem na zrobienie czegoś.
Sergey