sharkdp
094516aec3
Refactor directory handling
2020-04-03 22:36:32 +02:00
sharkdp
33eb857a81
Cleanup
2020-04-03 22:36:32 +02:00
sharkdp
6e96154d86
Add tests for strip_current_dir
2020-04-03 22:36:32 +02:00
sharkdp
556c40e1f4
Move strip_current_dir
2020-04-03 22:36:32 +02:00
sharkdp
b415d7234b
Rename fshelper to filesystem
2020-04-03 22:36:32 +02:00
sharkdp
e0cba4b700
Remove 'internal' module
2020-04-03 22:36:32 +02:00
sharkdp
342d12db3f
Remove possibility to use '--exec <cmd>' with a single dash
2020-04-03 22:36:32 +02:00
sharkdp
c79d1638f5
Move MAX_BUFFER_LENGTH
2020-04-03 22:36:32 +02:00
sharkdp
9ef9bf7b80
Add tests for regex_helper
2020-04-03 22:36:32 +02:00
sharkdp
809fd8fb78
Move regex helpers to new module
2020-04-03 22:36:32 +02:00
sharkdp
a3060f952e
Move error macros to error.rs
2020-04-03 22:36:32 +02:00
sharkdp
65096a653e
Move FdOptions to Options
2020-04-03 22:36:32 +02:00
sharkdp
9f738ad995
Move filter up from internal
2020-04-03 22:36:32 +02:00
sharkdp
5c27ab1a06
Move filetypes up from 'internal'
2020-04-03 22:36:32 +02:00
sharkdp
2cfb1a2bb2
Adapt --list-details help message
2020-04-03 11:28:01 +02:00
sharkdp
938dafda28
Clean up unused help texts
2020-04-03 11:26:20 +02:00
sharkdp
e2a7d3446b
Inline the help texts
2020-04-03 11:24:47 +02:00
sharkdp
e42ddda5a6
Clean up exit code handling
2020-04-03 10:48:27 +02:00
sharkdp
4274075f6f
Remove outdated license headers (not strictly required by Apache-2.0)
2020-04-03 10:19:13 +02:00
sharkdp
b9d0e72f70
Solve clippy issues
2020-04-03 10:08:47 +02:00
sharkdp
33df48ebe4
Remove claim about unique search results
2020-04-03 10:07:46 +02:00
sharkdp
c9dc617711
Rename --list to --list-details
2020-04-03 09:58:47 +02:00
sharkdp
da5cd12b24
Add -l
/--list
option
...
Add a new `-l`/`--list` option to show more details about the search results. This is basically
an alias for `--exec-batch ls -l` with some additional `ls` options.
This can be used in order to:
* see metadata like permissions, owner, file size, modification times (#491 )
* see symlink targets (#482 )
* achieve a deterministic output order (#324 , #196 , #159 )
* avoid duplicate search results when multiple search paths are given (#405 )
2020-04-03 09:58:47 +02:00
sharkdp
d43827fe57
Add --max-results=<count> option
...
This new option can be used instead of piping to `head -n <count>` for
improved performance:
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|:---|---:|---:|---:|---:|
| `fd --max-buffer-time=0 flow.yaml` | 153.9 ± 2.5 | 151.3 | 170.3 | 4.21 ± 5.86 |
| `fd --max-buffer-time=0 flow.yaml \| head -n 1` | 145.3 ± 17.4 | 111.0 | 180.2 | 3.98 ± 5.55 |
| `fd --max-results=1 flow.yaml` | 36.5 ± 50.8 | 7.2 | 145.7 | 1.00 |
Note: there is a large standard deviation on the last result due to the
non-deterministic file system traversal. With `--max-results`, we don't
have to traverse the whole filesystem tree, so it's all about luck.
closes #472
closes #476
2020-04-02 20:27:41 +02:00
sharkdp
44605d55dd
Use .to_string() instead of .description()
2020-03-22 15:54:43 +01:00
Dave Parfitt
70448b0006
honor the NO_COLOR env var
2020-03-19 22:56:28 +01:00
sharkdp
d05e7171d4
Fix for older versions of Rust
2020-02-28 20:42:14 +01:00
sharkdp
81dee25438
Add additional check for symlink
2020-02-28 20:42:14 +01:00
sharkdp
bbf0f1cc1f
New implementation of broken-symlink handling
2020-02-28 20:42:14 +01:00
sharkdp
bfc8c42444
Revert back to master state
2020-02-28 20:42:14 +01:00
sharkdp
d6034119ae
Add comment for broken symlinks
2020-02-28 20:42:14 +01:00
sharkdp
82e6562cfc
Further simplify the code
2020-02-28 20:42:14 +01:00
sharkdp
8cea65c1b8
Simplify match statement
2020-02-28 20:42:14 +01:00
Tom Milligan
9d73402ef2
walk: catch ignore NotFound error in the case of a broken symlink
2020-02-28 20:42:14 +01:00
fusillicode
0f2429cabc
Add unit tests for merge_exitcodes
2020-02-22 12:32:35 +01:00
fusillicode
232e3937f2
Rename error_if_any_error to merge_exitcodes
2020-02-22 12:32:35 +01:00
fusillicode
e23398e6d0
Extract error_if_any_error as free function
2020-02-22 12:32:35 +01:00
fusillicode
a5fe138a25
Extract ExitCode::is_error helper
2020-02-22 12:32:35 +01:00
fusillicode
b23cfc383f
Switch back from Self to ExitCode
2020-02-22 12:32:35 +01:00
fusillicode
e46998278a
Fix typo in a job.rs comment
2020-02-22 12:32:35 +01:00
fusillicode
7213f5a88e
Add collection of job & thread exit codes + default to ExitCode::Error if any ExitCode::Error
2020-02-22 12:32:35 +01:00
fusillicode
fa7d49282b
Restun exit code for generate_and_execute?
2020-02-22 12:32:35 +01:00
sharkdp
2f18903b29
Fix zsh autocompletion problem, closes #487
2020-02-06 21:52:09 +01:00
MarcoIeni
320d7fca0a
Sort search results when using -X option
2020-01-02 21:52:26 +01:00
sharkdp
f7d1938556
Formatting
2020-01-01 12:05:50 +01:00
sharkdp
328c6640be
Formatting
2020-01-01 12:05:33 +01:00
sharkdp
c001dd47a7
Hide --one-file-system from the short help text
2020-01-01 11:54:01 +01:00
sharkdp
a9c7696ecc
Small stylistic change
2020-01-01 11:54:01 +01:00
Simon Engmann
cd2dc5714e
Compare --one-file-system
to find's -mount/-xdev
2020-01-01 11:54:01 +01:00
Simon Engmann
ed6c184020
Shorten cfg!()
checks
2020-01-01 11:54:01 +01:00
Simon Engmann
6f7d10870c
Add aliases for --one-file-system
...
The functionality provided by `--one-file-system` is called
`-mount`/`-xdev` under `find`, so provide those aliases as a compromise.
2020-01-01 11:54:01 +01:00
Simon Engmann
dea1fbe722
Restrict --one-file-system
to supported systems
...
Instead of having the option do nothing at runtime on unsupported
platforms, it is now only available on the systems that support it in
the first place.
2020-01-01 11:54:01 +01:00
Simon Engmann
94993ca6c2
Rename --same-file-system
to --one-file-system
2020-01-01 11:54:01 +01:00
Simon Engmann
8796de57b5
Add same file system functionality
...
This adds a `--same-file-system` CLI option that instructs the walker to
not cross file system boundaries.
Due to the fact that the corresponding option of the `ignore` crate's
`WalkBuilder` does not support platforms other than Unix and Windows,
the option does nothing on platforms other than those.
Resolves #507
2020-01-01 11:54:01 +01:00
sharkdp
0f27485faf
Quit immediately if the channel::send call failed
2020-01-01 11:21:52 +01:00
sharkdp
762f551ff4
Update --help text
2019-12-23 16:07:38 +01:00
Rafał Hajdacki
fb205f5057
Allow changing current working directory of fd
2019-12-23 15:42:33 +01:00
EasiestSoft
32fdbb1eae
Fixed typos, occurence to occurrence, seach to search
2019-12-19 21:52:43 +01:00
Deepansh
a6ed0fc5ef
Fix CI error
...
Fixes sharkdp/fd#496
2019-10-09 23:09:21 +02:00
Deepansh Sood
266499800b
Fix idempotent flags
...
Add 'overrides_with' to format flags.
Resolves sharkdp/fd#488
2019-10-09 23:09:21 +02:00
sharkdp
d48aeda6b2
Apply clippy suggestions
2019-09-23 20:23:11 +02:00
Nathan Henrie
59c27baf0f
Expand help for -u
, add to manpage
2019-09-17 22:21:37 +02:00
Nathan Henrie
33f385692d
Add -u
alias to long --help only
...
Fixed sharkdp/fd#92 , specifically https://github.com/sharkdp/fd/issues/92#issuecomment-522756754
2019-09-17 22:21:37 +02:00
sharkdp
9350c8544d
Clean up cfg line
2019-09-15 18:58:05 +02:00
sharkdp
1ab4e87dda
Disable jemalloc for musl builds
2019-09-15 18:58:05 +02:00
sharkdp
4e20803e7d
Disable jemallocator on Windows
2019-09-15 18:58:05 +02:00
sharkdp
5a154866e3
Use jemalloc
...
Benchmark #1 : ./fd-sys-alloc '[0-9]\.jpg$' /home/shark
Time (mean ± σ): 246.8 ms ± 3.4 ms [User: 960.1 ms, System: 810.0 ms]
Range (min … max): 244.1 ms … 257.1 ms 12 runs
Benchmark #2 : ./fd-jemalloc '[0-9]\.jpg$' /home/shark
Time (mean ± σ): 201.0 ms ± 3.0 ms [User: 833.9 ms, System: 666.9 ms]
Range (min … max): 196.1 ms … 206.9 ms 14 runs
Summary
'./fd-jemalloc '[0-9]\.jpg$' /home/shark' ran
1.23 ± 0.03 times faster than './fd-sys-alloc '[0-9]\.jpg$' /home/shark'
2019-09-15 18:58:05 +02:00
sharkdp
08fcd7ce59
Make --changed-within/before work for directories
...
closes #470
2019-09-15 17:03:23 +02:00
sharkdp
eac20a8132
Add --regex option to override --glob
2019-09-15 16:47:38 +02:00
sharkdp
d5da615c17
Implement glob-based searches
...
closes #284
2019-09-15 16:47:38 +02:00
sharkdp
641594c2c6
Use regex::bytes::* instead of regex::*
2019-09-15 16:47:38 +02:00
sharkdp
2545aaabd2
Exit immediately when Ctrl-C has been pressed twice
2019-09-15 13:06:03 +02:00
sharkdp
f14b854bc1
Use existing Cow pointer
2019-09-15 10:57:27 +02:00
sharkdp
8f86a06c1a
Extend help text
2019-09-15 10:57:27 +02:00
Nathan Moreau
588e344d5b
Remove type annotation.
2019-09-15 10:57:27 +02:00
Nathan Moreau
e3af9b0307
Factor into a helper function; adapt to print_entry_uncolorized.
2019-09-15 10:57:27 +02:00
Nathan Moreau
29bf9d731d
Handle any string replacement.
2019-09-15 10:57:27 +02:00
Nathan Moreau
3857fa8f62
Amend clap configuration for path-separator.
2019-09-15 10:57:27 +02:00
Nathan Moreau
24e108e1ad
Add path-separator option.
...
Example usage: `fd.exe --path-separator /` on windows.
2019-09-15 10:57:27 +02:00
sharkdp
1d16cd855e
Fix warnings
2019-09-15 10:48:29 +02:00
sharkdp
a0505bd4df
Expose exit status from --exec-batch <cmd>
...
closes #333
2019-09-13 23:05:35 +02:00
Tavian Barnes
5cbd8405ec
Check the pattern before anything else, since it doesn't require metadata
...
This should partially address #432 by decreasing the number of stat() calls:
$ strace -c -f ./fd-before '\.h$' /usr -j1 -S +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
15.71 8.831948 7 1192279 46059 stat
$ strace -c -f ./fd-after '\.h$' /usr -j1 -S +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
7.92 1.972474 10 183907 46046 stat
Though it's not as few as possible:
$ strace -c -f find /usr -iname '*.h' -size +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
19.01 0.946500 5 161649 newfstatat
$ strace -c -f bfs /usr -iname '*.h' -size +1k >/dev/null
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
13.73 0.406565 5 69005 statx
Performance is much better when metadata is required:
$ hyperfine ./fd-{before,after}" '\.h$' /usr -j1 -S +1k"
Benchmark #1 : ./fd-before '\.h$' /usr -j1 -S +1k
Time (mean ± σ): 4.623 s ± 0.154 s [User: 1.465 s, System: 3.354 s]
Range (min … max): 4.327 s … 4.815 s 10 runs
Benchmark #2 : ./fd-after '\.h$' /usr -j1 -S +1k
Time (mean ± σ): 2.650 s ± 0.058 s [User: 1.258 s, System: 1.592 s]
Range (min … max): 2.568 s … 2.723 s 10 runs
Summary
'./fd-after '\.h$' /usr -j1 -S +1k' ran
1.74 ± 0.07 times faster than './fd-before '\.h$' /usr -j1 -S +1k'
While remaining the same when it's not:
$ hyperfine ./fd-{before,after}" '\.h$' /usr -j1"
Benchmark #1 : ./fd-before '\.h$' /usr -j1
Time (mean ± σ): 2.382 s ± 0.038 s [User: 1.221 s, System: 1.286 s]
Range (min … max): 2.325 s … 2.433 s 10 runs
Benchmark #2 : ./fd-after '\.h$' /usr -j1
Time (mean ± σ): 2.362 s ± 0.034 s [User: 1.193 s, System: 1.294 s]
Range (min … max): 2.307 s … 2.422 s 10 runs
Summary
'./fd-after '\.h$' /usr -j1' ran
1.01 ± 0.02 times faster than './fd-before '\.h$' /usr -j1'
2019-05-08 07:28:47 -05:00
Tim Holland
074cfad3d4
Remove deprecated trim_left(_matches)?
...
warning: use of deprecated item 'core::str::<impl str>::trim_left_matches': superseded by `trim_start_matches`
--> src/main.rs:222:28
|
222 | .map(|e| e.trim_left_matches('.'))
| ^^^^^^^^^^^^^^^^^
|
= note: #[warn(deprecated)] on by default
2019-03-02 08:15:12 +01:00
Alexandru Macovei
c2b46f247f
avoid cloning command, in the wake of 9d26b74
2019-01-30 20:42:43 +01:00
Alexandru Macovei
fe53af064b
fix most clippy lints
2019-01-26 16:15:48 +01:00
Alexandru Macovei
6aa87f3423
save one indent level in error handling for add_ignore
2019-01-26 16:15:48 +01:00
Alexandru Macovei
74e593c43c
inline value used only once
2019-01-26 16:15:48 +01:00
Alexandru Macovei
df4227c614
Uniform names for config and wants_to_quit. Pass Arc's by ref.
2019-01-26 16:15:48 +01:00
Alexandru Macovei
5ade72a5e1
split spawn_receiver(..) and spawn_senders(..) from scan(..).
...
This is just a split commit, refraining from renaming too much.
The drop(tx) call is no longer necessary, as the first sender
is dropped at the end of spawn_senders(..)
2019-01-26 16:15:48 +01:00
Alexandru Macovei
d8bd5f9d51
macronize repetitive tests in exec/input
2019-01-26 16:15:48 +01:00
sharkdp
8cfdcf43f6
Lock stdout only once
2019-01-09 08:20:20 +01:00
sharkdp
8c197d2866
Update to new lscolors version
2019-01-08 21:28:43 +01:00
Alexandru Macovei
051ff5987a
[2018 edition] remove all extern crate lines from sources
2019-01-07 12:52:30 +01:00
Alexandru Macovei
64e6ea9fe9
[2018 edition] run cargo fix edition and edition-idioms
2019-01-07 12:52:30 +01:00
sharkdp
33feb511f0
Formatting
2019-01-01 17:40:53 +01:00
sharkdp
985fab16bb
Add note about short and long help text, closes #286
2019-01-01 17:40:30 +01:00
sharkdp
a17a3fe5ef
Add comment about hidden files/directories, see #377
2019-01-01 16:31:06 +01:00
sharkdp
4b5efa3438
Use lscolors crate
...
Use my new [lscolors](https://github.com/sharkdp/lscolors ) crate instead
of the internal `lscolors` module
- Speeds up `LS_COLORS` querying, leading to a nice 25% performance
improvement when
- Adds support for 24-bit colors and background colors
closes #368
closes #363
2018-12-14 23:20:18 +01:00
kimsnj
6b40a075cd
exec-batch: fix a panic with -X "echo {}" and pass stdio to child cmd
2018-11-12 21:11:40 +01:00
kimsnj
45d1b15cff
Add support for batch execution of command
2018-11-12 21:11:40 +01:00