2014-04-24 17:11:08 +00:00
|
|
|
---
|
|
|
|
title: "Local Filesystem"
|
|
|
|
description: "Rclone docs for the local filesystem"
|
2014-04-26 16:43:41 +00:00
|
|
|
date: "2014-04-26"
|
2014-04-24 17:11:08 +00:00
|
|
|
---
|
|
|
|
|
2014-07-17 19:03:11 +00:00
|
|
|
<i class="fa fa-file"></i> Local Filesystem
|
|
|
|
-------------------------------------------
|
2014-03-28 22:34:13 +00:00
|
|
|
|
|
|
|
Local paths are specified as normal filesystem paths, eg `/path/to/wherever`, so
|
|
|
|
|
|
|
|
rclone sync /home/source /tmp/destination
|
|
|
|
|
|
|
|
Will sync `/home/source` to `/tmp/destination`
|
|
|
|
|
|
|
|
These can be configured into the config file for consistencies sake,
|
|
|
|
but it is probably easier not to.
|
|
|
|
|
2015-06-06 09:05:21 +00:00
|
|
|
### Modified time ###
|
2014-03-28 22:34:13 +00:00
|
|
|
|
2014-04-26 16:43:41 +00:00
|
|
|
Rclone reads and writes the modified time using an accuracy determined by
|
2014-03-28 22:34:13 +00:00
|
|
|
the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Second
|
|
|
|
on OS X.
|
|
|
|
|
2015-06-06 09:05:21 +00:00
|
|
|
### Filenames ###
|
2015-05-21 17:40:16 +00:00
|
|
|
|
|
|
|
Filenames are expected to be encoded in UTF-8 on disk. This is the
|
2016-02-21 14:09:06 +00:00
|
|
|
normal case for Windows and OS X.
|
|
|
|
|
|
|
|
There is a bit more uncertainty in the Linux world, but new
|
|
|
|
distributions will have UTF-8 encoded files names. If you are using an
|
|
|
|
old Linux filesystem with non UTF-8 file names (eg latin1) then you
|
|
|
|
can use the `convmv` tool to convert the filesystem to UTF-8. This
|
|
|
|
tool is available in most distributions' package managers.
|
2015-05-21 17:40:16 +00:00
|
|
|
|
2017-10-28 06:03:51 +00:00
|
|
|
If an invalid (non-UTF8) filename is read, the invalid characters will
|
2015-05-21 17:40:16 +00:00
|
|
|
be replaced with the unicode replacement character, '�'. `rclone`
|
2015-06-06 09:05:21 +00:00
|
|
|
will emit a debug message in this case (use `-v` to see), eg
|
2015-05-21 17:40:16 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
Local file system at .: Replacing invalid UTF-8 characters in "gro\xdf"
|
|
|
|
```
|
2016-01-04 11:28:47 +00:00
|
|
|
|
|
|
|
### Long paths on Windows ###
|
|
|
|
|
|
|
|
Rclone handles long paths automatically, by converting all paths to long
|
|
|
|
[UNC paths](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath)
|
|
|
|
which allows paths up to 32,767 characters.
|
|
|
|
|
|
|
|
This is why you will see that your paths, for instance `c:\files` is
|
|
|
|
converted to the UNC path `\\?\c:\files` in the output,
|
|
|
|
and `\\server\share` is converted to `\\?\UNC\server\share`.
|
|
|
|
|
|
|
|
However, in rare cases this may cause problems with buggy file
|
|
|
|
system drivers like [EncFS](https://github.com/ncw/rclone/issues/261).
|
|
|
|
To disable UNC conversion globally, add this to your `.rclone.conf` file:
|
|
|
|
|
|
|
|
```
|
|
|
|
[local]
|
|
|
|
nounc = true
|
|
|
|
```
|
|
|
|
|
|
|
|
If you want to selectively disable UNC, you can add it to a separate entry like this:
|
|
|
|
|
|
|
|
```
|
|
|
|
[nounc]
|
|
|
|
type = local
|
|
|
|
nounc = true
|
|
|
|
```
|
|
|
|
And use rclone like this:
|
|
|
|
|
|
|
|
`rclone copy c:\src nounc:z:\dst`
|
|
|
|
|
|
|
|
This will use UNC paths on `c:\src` but not on `z:\dst`.
|
|
|
|
Of course this will cause problems if the absolute path length of a
|
|
|
|
file exceeds 258 characters on z, so only use this option if you have to.
|
2016-11-03 11:51:36 +00:00
|
|
|
|
2018-10-01 17:36:15 +00:00
|
|
|
### Symlinks / Junction points
|
2017-01-29 13:43:20 +00:00
|
|
|
|
|
|
|
Normally rclone will ignore symlinks or junction points (which behave
|
|
|
|
like symlinks under Windows).
|
|
|
|
|
2018-10-01 17:36:15 +00:00
|
|
|
If you supply `--copy-links` or `-L` then rclone will follow the
|
|
|
|
symlink and copy the pointed to file or directory.
|
2017-01-29 13:43:20 +00:00
|
|
|
|
|
|
|
This flag applies to all commands.
|
|
|
|
|
|
|
|
For example, supposing you have a directory structure like this
|
|
|
|
|
|
|
|
```
|
|
|
|
$ tree /tmp/a
|
|
|
|
/tmp/a
|
|
|
|
├── b -> ../b
|
|
|
|
├── expected -> ../expected
|
|
|
|
├── one
|
|
|
|
└── two
|
|
|
|
└── three
|
|
|
|
```
|
|
|
|
|
|
|
|
Then you can see the difference with and without the flag like this
|
|
|
|
|
|
|
|
```
|
|
|
|
$ rclone ls /tmp/a
|
|
|
|
6 one
|
|
|
|
6 two/three
|
|
|
|
```
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
```
|
|
|
|
$ rclone -L ls /tmp/a
|
|
|
|
4174 expected
|
|
|
|
6 one
|
|
|
|
6 two/three
|
|
|
|
6 b/two
|
|
|
|
6 b/one
|
|
|
|
```
|
|
|
|
|
2018-10-01 17:36:15 +00:00
|
|
|
### Restricting filesystems with --one-file-system
|
2018-04-09 14:27:58 +00:00
|
|
|
|
2018-10-01 17:36:15 +00:00
|
|
|
Normally rclone will recurse through filesystems as mounted.
|
2018-04-09 14:27:58 +00:00
|
|
|
|
2018-10-01 17:36:15 +00:00
|
|
|
However if you set `--one-file-system` or `-x` this tells rclone to
|
|
|
|
stay in the filesystem specified by the root and not to recurse into
|
|
|
|
different file systems.
|
2016-11-03 11:51:36 +00:00
|
|
|
|
2017-10-28 06:03:51 +00:00
|
|
|
For example if you have a directory hierarchy like this
|
2016-11-03 11:51:36 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
root
|
|
|
|
├── disk1 - disk1 mounted on the root
|
|
|
|
│ └── file3 - stored on disk1
|
|
|
|
├── disk2 - disk2 mounted on the root
|
|
|
|
│ └── file4 - stored on disk12
|
|
|
|
├── file1 - stored on the root disk
|
|
|
|
└── file2 - stored on the root disk
|
|
|
|
```
|
|
|
|
|
|
|
|
Using `rclone --one-file-system copy root remote:` will only copy `file1` and `file2`. Eg
|
|
|
|
|
|
|
|
```
|
|
|
|
$ rclone -q --one-file-system ls root
|
|
|
|
0 file1
|
|
|
|
0 file2
|
|
|
|
```
|
|
|
|
|
|
|
|
```
|
|
|
|
$ rclone -q ls root
|
|
|
|
0 disk1/file3
|
|
|
|
0 disk2/file4
|
|
|
|
0 file1
|
|
|
|
0 file2
|
|
|
|
```
|
|
|
|
|
|
|
|
**NB** Rclone (like most unix tools such as `du`, `rsync` and `tar`)
|
|
|
|
treats a bind mount to the same device as being on the same
|
|
|
|
filesystem.
|
|
|
|
|
|
|
|
**NB** This flag is only available on Unix based systems. On systems
|
2018-10-01 17:36:15 +00:00
|
|
|
where it isn't supported (eg Windows) it will be ignored.
|
2017-07-21 10:15:58 +00:00
|
|
|
|
2018-10-01 17:36:15 +00:00
|
|
|
<!--- autogenerated options start - edit in backend/backend.go options -->
|
|
|
|
<!--- autogenerated options stop -->
|