Warum kann ich eine Datei, die ich zum Beispiel aus Windows heraus erstelle, unter dem Linux-Subsystem in Windows 10 (bash.exe) nicht sehen?
Der Screenshot sollte erklären.
Ordner: OMG wurde im Windows Explorer erstellt. Der Ordner OMGBash wurde mit dem Linux-Subsystem bash.exe erstellt
Wenn ein Ordner ODER eine Datei außerhalb von bash.exe erstellt wird, kann ich sie ungeachtet der Berechtigungen und des Eigentums nie sehen.
Um die Informationen anzuzeigen, die ich zum Anzeigen von Dateiberechtigungen mit Cygwin verwenden musste, habe ich auch die Berechtigungen geändert, um festzustellen, ob der Ordner angezeigt wird. (Die beiden Befehlsfenster unten)
Screenshot mit Ordner-, bash.exe- und Cygwin-Berechtigungen:
Ich versuche, alle meine Cygwin-Skripte auf das Linux-Subsystem zu verschieben, aber ich möchte nicht jede Datei neu erstellen, dann mit bash kopieren und einfügen, dann mit Dos2unix neu formatieren (sehr langwierig).
Gefunden bei GitHub für das Linux-Subsystem:
Das direkte Kopieren von Windows in das Linux-Subsystem wird nach Angaben anderer Tickets nicht unterstützt. Unter AppData befindet sich irgendwo (ich vergesse wo) ein Verzeichnis, das die Dateien für das WSL-Dateisystem enthält. Wenn Sie jedoch neue Dateien dort ablegen oder vorhandene Dateien dort ändern, werden Ihre Änderungen in WSL nicht korrekt wiedergegeben.
Ich gehe davon aus, dass Linux andere Metadaten (und mehr Caching-Informationen usw., da sich auch das Modell der Festplattenpufferung unterscheidet) zu seinen Dateien speichern muss als Windows und dies derzeit durch Speichern der Masterkopie der Struktur implementiert wird des Linux-Dateisystems in einer Datenbank, und nur mit dem Windows-Dateisystem als bequemen BLOB-Speicher für diese Datenbank.
Wenn Sie dies wirklich tun müssen, besteht eine Problemumgehung darin, ein Drag'n'Drop-Skript (.bat) oder etwas Ähnliches zu schreiben, das bash.exe -c "mv% 1 / home / $ USER /" ausführt. (Sie müssen einige clevere Arbeiten mit sed und tr ausführen, um% 1 wahrscheinlich in einen gültigen WSL-Pfad zu übersetzen.)
Alternativ - könnten Sie Ihre Dateien in ein Windows-Verzeichnis stellen und in der WSL "cd ~; ln -s / mnt / c / path / to / my / files" ausführen, um sie in Ihrem WSL-Homedir erscheinen zu lassen?
cp -r --no-preserve=all
die vorherigen Berechtigungen gelöscht werden . Wenn Sie jedoch umfangreiche Änderungen vornehmen möchten, können Sie die Datei im LinuxSubSystem nicht mit einer Windows-Anwendung bearbeiten. Sie müssen sie in Ihrem Windows-Verzeichnis bearbeiten und dann kopieren. Jetzt weiß ich, dass es funktioniert, ABER ich hatte den Eindruck, das Linux-Subsystem sei nativer / in Windows integriert als ein isoliertes Betriebssystem
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.