Awesome
<!-- SPDX-FileCopyrightText: 2022 Shun Sakai SPDX-License-Identifier: Apache-2.0 OR MIT -->hf
hf is a cross-platform hidden file library and utility.
Installation
From source
cargo install hf
From binaries
The release page contains pre-built binaries for Linux, macOS and Windows.
How to build
Please see BUILD.adoc.
Usage
Make files invisible
Don't actually hide anything, just show what would be done:
hf hide -n data.txt
Actually hide files:
hf hide -f data.txt
Make hidden files visible
Don't actually show anything, just show what would be done:
hf show -n .data.txt
Actually show hidden files:
hf show -f .data.txt
Generate shell completion
--generate-completion
option generates shell completions to standard output.
The following shells are supported:
bash
elvish
fish
nushell
powershell
zsh
Example:
hf --generate-completion bash > hf.bash
Use as a library
This crate is also available as a library.
Add this to your Cargo.toml
to use it as a library:
[dependencies]
hf = { version = "0.3.6", default-features = false }
By default, the dependencies required to build the application are also built.
If you disable the default
feature, only the dependencies required to build
the library will be built.
Example
use std::fs::File;
let temp_dir = tempfile::tempdir().unwrap();
let file_path = temp_dir.path().join("foo.txt");
File::create(&file_path).unwrap();
assert!(!hf::is_hidden(&file_path).unwrap());
hf::hide(&file_path).unwrap();
// Change the file name to start with `.`.
#[cfg(unix)]
let file_path = hf::unix::hidden_file_name(&file_path).unwrap();
assert!(hf::is_hidden(&file_path).unwrap());
hf::show(&file_path).unwrap();
// Change the file name to start with a character other than `.`.
#[cfg(unix)]
let file_path = hf::unix::normal_file_name(&file_path).unwrap();
assert!(!hf::is_hidden(file_path).unwrap());
Documentation
See the documentation for more details.
Minimum supported Rust version
The minimum supported Rust version (MSRV) of this library is v1.74.0.
Command-line options
Please see the following:
Changelog
Please see CHANGELOG.adoc.
Contributing
Please see CONTRIBUTING.adoc.
License
Copyright © 2022–2024 Shun Sakai (see AUTHORS.adoc)
- This program is distributed under the terms of either the Apache License 2.0 or the MIT License.
- Some files are distributed under the terms of the Creative Commons Attribution 4.0 International Public License.
This project is compliant with version 3.2 of the REUSE Specification. See copyright notices of individual files for more details on copyright and licensing information.