Любой файловый менеджер, который может XOR две домашние папки?

Если скрипт должен выполнить однозадачную задачу при запуске, я бы использовал задачу @reboot cron. В этом случае вы должны отредактировать свой crontab с помощью sudo crontab -e и добавить что-то вроде следующей строки:

@reboot php /var/www/XXXXXX.php

На этой странице приведены дополнительные сведения об использовании cron.

3
задан 19 October 2017 в 06:03

3 ответа

То, что вы делаете (попытка синхронизировать WSL и истинную установку Ubuntu совершенно), очень опасна и не должна восприниматься легко, если это даже возможно. Конфигурация / системные различия между двумя ОС могут вызвать массовые проблемы в зависимости от того, как это происходит. См. Здесь, что происходит, когда люди делают подобные вещи с VirtualBox.

С WSL могут случиться только худшие вещи, и это будет преувеличено, пытаясь синхронизировать все файлы, кроме тех, которые находятся в черном списке.

Это говорит о том, что то, что вы хотите сделать (слияние папок без перезаписи существующих файлов), чрезвычайно прост и уже поддерживается почти каждым основным файловым менеджером (и командой prompt).

Обратите внимание, что это не будет работать автоматически. Вам придется вручную запускать их, хотя я полагаю, вы можете использовать некоторые творческие злоупотребления, чтобы сделать его полуавтоматическим. Обратите внимание, что все предыдущие оговорки будут применяться.

Обычный старая cp может сделать это с помощью опции -n:

┌─[16:57:35]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % tree
.
├── folder-a
│   ├── a
│   ├── b
│   └── d
└── folder-b
    ├── a
    ├── c
    ├── e
    └── k
        └── j

3 directories, 7 files
┌─[16:57:41]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-a/a
Hello World A
┌─[16:57:43]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-b/a
Hello World B
┌─[16:57:54]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cp -nR folder-a/* folder-b/
┌─[16:58:00]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cp -nR folder-b/* folder-a/
┌─[16:58:03]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % tree
.
├── folder-a
│   ├── a
│   ├── b
│   ├── c
│   ├── d
│   ├── e
│   └── k
│       └── j
└── folder-b
    ├── a
    ├── b
    ├── c
    ├── d
    ├── e
    └── k
        └── j

4 directories, 12 files
┌─[16:58:07]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-a/a
Hello World A
┌─[16:58:09]─[kazwolfe@firewolf]
└──> /tmp/xor-terminal % cat folder-b/a
Hello World B

В качестве альтернативы, если вы хотите использовать графический интерфейс, это также можно выполнить с помощью простого старого Nautilus. Просто перетащите содержимое одного на другое, и вы увидите это приглашение в первом конфликтующем файле. Просто нажмите Применить это действие ко всем файлам, а затем Пропустить:

См. Здесь

┌─[17:01:33]─[kazwolfe@firewolf]
└──> /tmp/xor-gui % cat folder-a/a
Hello World A
┌─[17:01:34]─[kazwolfe@firewolf]
└──> /tmp/xor-gui % cat folder-b/a
Hello World B

Если вы хотите поэкспериментировать немного (на самом деле, много), вы можете злоупотреблять чем-то вроде aufs или OverlayFS. Фактически, вы настроили свою «базовую» файловую систему на общую файловую систему (вероятно, это ваш корень Ubuntu). Затем у вас будет второй слой, содержащий WSL-изменения. Пусть только слой WSL доступен только для чтения, а все остальное переходит в базовую файловую систему. Конечно, все это теоретично, и вам нужно будет сделать много исследований, чтобы увидеть, возможно ли что-то подобное.

Если вам нужны только «основные» папки, синхронизированные между ОС (например, [ f6], Music, Desktop и т. д.), просто создайте символическую ссылку от одного к другому. Моя старая конфигурация Ubuntu, когда я дважды загружался, имел мою папку ~/Documents, символически привязанную к эквиваленту Windows. Это можно сделать, конечно, с чем-то вроде ln -s. Обратите внимание, что вам может понадобиться немного поработать с разрешениями на mounts very использовать привязки привязок.

2
ответ дан 22 May 2018 в 17:25
  • 1
    TL; DR; Нет, я явно НЕ хочу, чтобы они синхронизировались. Я хочу, чтобы мои документы были эксклюзивными (или XOR), поэтому мне не нужно дублировать их между разделами и вручную синхронизировать их по одному. +1 хотя для отличного ответа по сходной вене :) – WinEunuuchs2Unix 19 October 2017 в 03:20
  • 2
    @ WinEunuuchs2Unix - Вы не можете делать то, что вы себе представляете. Bash на окнах все еще являются двоичными файлами Windows, и окна не имеют возможности или rw для файловых систем Linux надежно. Ubuntu не поддерживает ntfs как домашний каталог. Ваш лучший вариант - это разделяемый раздел NTFS, который вы можете использовать в обоих случаях. – Panther 19 October 2017 в 07:53
  • 3
    @ bodhi.zazen Bash на Windows запускает Linux Binaries изначально без перекомпиляции. Верно, что программы Windows не могут редактировать (или копировать) файлы Linux, поскольку они повреждают атрибуты / разрешения файлов. Я ищу файловый менеджер Linux, а не диспетчера файлов Windows. – WinEunuuchs2Unix 19 October 2017 в 13:15
  • 4
    Как всегда, вы правы. Я использую ваш желанный nano сейчас в WSL, хотя я могу использовать gedit в xfce4 в VcXsrv в WSL. (Это сложно). После нескольких недель исследований я пришел к выводу, что мне придется настроить старый ноутбук как сервер Open-SSH со статическим набором сценариев и документов bash. Мне нужно будет использовать клиент Open-SSH в WSL и двойной загрузив Linux на тот же клиентский ПК, чтобы получить доступ к этим файлам, чтобы не пришлось вручную копировать файлы. Я опубликовал комментарии на сайтах MS по ограничениям WSL, которые не могут читать и писать разделы Linux безрезультатно. Подсказка @RichTurner @YouknowWhere. – WinEunuuchs2Unix 2 November 2017 в 05:30
  • 5
    Ну ладно, теперь у меня есть хороший повод купить один из этих 8 портов 10/100/1000 переключателей для сорок баксов :) – WinEunuuchs2Unix 2 November 2017 в 05:35

То, что вы делаете (попытка синхронизировать WSL и истинную установку Ubuntu совершенно), очень опасна и не должна восприниматься легко, если это даже возможно. Конфигурация / системные различия между двумя ОС могут вызвать массовые проблемы в зависимости от того, как это происходит. См. Здесь, что происходит, когда люди делают подобные вещи с VirtualBox.

С WSL могут случиться только худшие вещи, и это будет преувеличено, пытаясь синхронизировать все файлы, кроме тех, которые находятся в черном списке.

Это говорит о том, что то, что вы хотите сделать (слияние папок без перезаписи существующих файлов), чрезвычайно прост и уже поддерживается почти каждым основным файловым менеджером (и командой prompt).

Обратите внимание, что это не будет работать автоматически. Вам придется вручную запускать их, хотя я полагаю, вы можете использовать некоторые творческие злоупотребления, чтобы сделать его полуавтоматическим. Обратите внимание, что все предыдущие оговорки будут применяться.

Обычный старая cp может сделать это с помощью опции -n:

┌─[16:57:35]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % tree . ├── folder-a │   ├── a │   ├── b │   └── d └── folder-b ├── a ├── c ├── e └── k └── j 3 directories, 7 files ┌─[16:57:41]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-a/a Hello World A ┌─[16:57:43]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-b/a Hello World B ┌─[16:57:54]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cp -nR folder-a/* folder-b/ ┌─[16:58:00]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cp -nR folder-b/* folder-a/ ┌─[16:58:03]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % tree . ├── folder-a │   ├── a │   ├── b │   ├── c │   ├── d │   ├── e │   └── k │   └── j └── folder-b ├── a ├── b ├── c ├── d ├── e └── k └── j 4 directories, 12 files ┌─[16:58:07]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-a/a Hello World A ┌─[16:58:09]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-b/a Hello World B

В качестве альтернативы, если вы хотите использовать графический интерфейс, это также можно выполнить с помощью простого старого Nautilus. Просто перетащите содержимое одного на другое, и вы увидите это приглашение в первом конфликтующем файле. Просто нажмите Применить это действие ко всем файлам, а затем Пропустить:

См. Здесь

┌─[17:01:33]─[kazwolfe@firewolf] └──> /tmp/xor-gui % cat folder-a/a Hello World A ┌─[17:01:34]─[kazwolfe@firewolf] └──> /tmp/xor-gui % cat folder-b/a Hello World B

Если вы хотите поэкспериментировать немного (на самом деле, много), вы можете злоупотреблять чем-то вроде aufs или OverlayFS. Фактически, вы настроили свою «базовую» файловую систему на общую файловую систему (вероятно, это ваш корень Ubuntu). Затем у вас будет второй слой, содержащий WSL-изменения. Пусть только слой WSL доступен только для чтения, а все остальное переходит в базовую файловую систему. Конечно, все это теоретично, и вам нужно будет сделать много исследований, чтобы увидеть, возможно ли что-то подобное.

Если вам нужны только «основные» папки, синхронизированные между ОС (например, Documents, Music, Desktop и т. д.), просто создайте символическую ссылку от одного к другому. Моя старая конфигурация Ubuntu, когда я дважды загружался, имел мою папку ~/Documents, символически привязанную к эквиваленту Windows. Это можно сделать, конечно, с чем-то вроде ln -s. Обратите внимание, что вам может понадобиться немного поработать с разрешениями на mounts very использовать привязки привязок.

2
ответ дан 18 July 2018 в 05:05

То, что вы делаете (попытка синхронизировать WSL и истинную установку Ubuntu совершенно), очень опасна и не должна восприниматься легко, если это даже возможно. Конфигурация / системные различия между двумя ОС могут вызвать массовые проблемы в зависимости от того, как это происходит. См. Здесь, что происходит, когда люди делают подобные вещи с VirtualBox.

С WSL могут случиться только худшие вещи, и это будет преувеличено, пытаясь синхронизировать все файлы, кроме тех, которые находятся в черном списке.

Это говорит о том, что то, что вы хотите сделать (слияние папок без перезаписи существующих файлов), чрезвычайно прост и уже поддерживается почти каждым основным файловым менеджером (и командой prompt).

Обратите внимание, что это не будет работать автоматически. Вам придется вручную запускать их, хотя я полагаю, вы можете использовать некоторые творческие злоупотребления, чтобы сделать его полуавтоматическим. Обратите внимание, что все предыдущие оговорки будут применяться.

Обычный старая cp может сделать это с помощью опции -n:

┌─[16:57:35]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % tree . ├── folder-a │   ├── a │   ├── b │   └── d └── folder-b ├── a ├── c ├── e └── k └── j 3 directories, 7 files ┌─[16:57:41]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-a/a Hello World A ┌─[16:57:43]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-b/a Hello World B ┌─[16:57:54]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cp -nR folder-a/* folder-b/ ┌─[16:58:00]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cp -nR folder-b/* folder-a/ ┌─[16:58:03]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % tree . ├── folder-a │   ├── a │   ├── b │   ├── c │   ├── d │   ├── e │   └── k │   └── j └── folder-b ├── a ├── b ├── c ├── d ├── e └── k └── j 4 directories, 12 files ┌─[16:58:07]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-a/a Hello World A ┌─[16:58:09]─[kazwolfe@firewolf] └──> /tmp/xor-terminal % cat folder-b/a Hello World B

В качестве альтернативы, если вы хотите использовать графический интерфейс, это также можно выполнить с помощью простого старого Nautilus. Просто перетащите содержимое одного на другое, и вы увидите это приглашение в первом конфликтующем файле. Просто нажмите Применить это действие ко всем файлам, а затем Пропустить:

См. Здесь

┌─[17:01:33]─[kazwolfe@firewolf] └──> /tmp/xor-gui % cat folder-a/a Hello World A ┌─[17:01:34]─[kazwolfe@firewolf] └──> /tmp/xor-gui % cat folder-b/a Hello World B

Если вы хотите поэкспериментировать немного (на самом деле, много), вы можете злоупотреблять чем-то вроде aufs или OverlayFS. Фактически, вы настроили свою «базовую» файловую систему на общую файловую систему (вероятно, это ваш корень Ubuntu). Затем у вас будет второй слой, содержащий WSL-изменения. Пусть только слой WSL доступен только для чтения, а все остальное переходит в базовую файловую систему. Конечно, все это теоретично, и вам нужно будет сделать много исследований, чтобы увидеть, возможно ли что-то подобное.

Если вам нужны только «основные» папки, синхронизированные между ОС (например, Documents, Music, Desktop и т. д.), просто создайте символическую ссылку от одного к другому. Моя старая конфигурация Ubuntu, когда я дважды загружался, имел мою папку ~/Documents, символически привязанную к эквиваленту Windows. Это можно сделать, конечно, с чем-то вроде ln -s. Обратите внимание, что вам может понадобиться немного поработать с разрешениями на mounts very использовать привязки привязок.

2
ответ дан 24 July 2018 в 18:14

Другие вопросы по тегам:

Похожие вопросы: